Friday, July 31, 2009

About the kernel of Loongson 2F machine

I just found that, it is actually very easy to trigger the problem that the -mfix-ls2f-kernel as option could fix. Like just emerging glibc could hang the system. So if you are using linux-loongson/2.6.30/stable branch from this git tree http://dev.lemote.com/git?p=rt4ls.git;a=summary, you maybe want to line 129 of arch/mips/Makefile:
$(call cc-option,-march=loongson2f,-march=r4600) $(call cc-optoin,-mtune=loongson2f)
to
$(call cc-option,-march=loongson2f,-march=r4600) $(call as-option,-Wa$(comma)-mfix-ls2f-kernel,)
Actually, $(call cc-optoin,-mtune=loongson2f) here is not required.

BTW, glibc-2.10.1 is ready in my overlay. This version could solve the gdb issue:
Error while reading shared library symbols:
find_new_threads_callback: cannot get thread info: generic error
find_new_threads_callback: cannot get thread info: generic error
This happened previously when debugging multithread applications.

Labels: , ,

Monday, July 27, 2009

More on Yeeloong status

I have not blogged here for some time. But that does not necessarily mean I am slacking, ;). Instead I have been doing things. I should've blogged more.

http://www.gentoo-cn.org/gitweb/?p=loongson.git;a=shortlog

Redhatter posted two blogs related to Yeeloong's status. I guess I should say something too.

First of all, I recommend this mailing list http://groups.google.com/group/loongson-dev to those who want to know the latest news about Loongson. If you want to try Gentoo on Yeeloong, you can take this http://www.gentoo-cn.org/~zhangle/loongson_mips3_n32_mplt_20081231.tar.bz2 The file's sha256sum is c94bcd45e58e5f4b8314942a6b3110a2316fd74adb009c8269d1e8e2077d7c72. Please note the userland is N32 ABI, meaning there may be more problems than in O32. But I should've already solved many of them for you.

I have been working on Fuloong 2E/2F and Yeeloong's support, particularly N32 ABI system. Firefox is just one example.

I have 3 Loongson machines, all donated by lemote:
  1. One Fuloong 2E box. Now gentoo-cn.org is running on it. O32 ABI userland. Gcc 4.4, -march=loongson2e. MIPS plt. I am not running X on it. I am not sure if Redhatter runs X on it or not. If not, then you can say that Fuloong 2E has not X support in Gentoo. Anyway, I think very few people have it, and even fewer are using it as desktop.
  2. One Fuloong 2F box. I have two Gentoo on it. One O32 ABI userland, the other is N32 ABI userland. Gcc 4.4, -march=loongson2f. MIPS plt. xorg-server-1.6.2. LXDE. Dev machine.
  3. One Yeeloong notebook. I have one Gentoo on it. N32 ABI userland. xorg-server-1.6.2. xf86-video-siliconmotion-1.7.2. LXDE. Dev machine.
For the kernel support, please just use this kernel source, all you want is just there: http://groups.google.com/group/loongson-dev/browse_thread/thread/1b0a6a4f7c2485e8 You don't need to have gcc 4.4 if you don't care about -march=loongons2f. There is some magic in the Makefile which could make the compiling just work. And in this source, as option -mfix-ls2f-kernel is not enabled. So that binutils patch is not required for this source to compile. And this patch solves the problem that system sometimes hangs under stress test. So if your system never hang before, then maybe you don't need it.

For firefox, upstream xulrunner 1.9.1 already has O32 ABI patch. So nothing extra need to be done if you want to run Firefox in O32 ABI userland. Just emerge. If you are using N32 ABI userland, please use the ebuild from my overlay, check the link at the top. I haven't tried thunderbird though. I am now using Mutt anyway, :D.

For X, it is quite complicated. You can claim that X server now requires no patch at all, but that actually depends on which machine and which version of xorg-server you are using. On Fuloong 2F, xorg-server-1.6.2 does not need patching, the driver I am using now is the highest version of xf86-video-sis in tree. On Yeeloong, xorg-server-1.6.2 need patching if you use xf86-video-siliconmotion-1.7.2 from xorg (I have a live ebuild for it in my overlay). If you use xorg-server-1.4.x, you can also use xf86-video-siliconmotion-2.2.8 (I will explain it immediately) from lemote, this way xorg-server does not need patching. BTW, this xf86-video-siliconmotion-2.2.8 is actually from siliconmotion card's manufacturer, it should be based on xorg's xf86-video-siliconmotion somewhere before it has got libpciaccess support and later it has got its own version numbering scheme. So this xf86-video-siliconmotion-2.2.8 won't work on xorg-server-1.5.x and later. And I have tried to add libpciaccess support to it, but after done what I think is necessary, I found there are more problems. So I gave up on xf86-video-siliconmotion-2.2.8. I left the sources here: http://www.gentoo-cn.org/gitweb/?p=siliconmotion.git;a=summary Then I tried to fix xorg's siliconmotion driver, and I found the cause http://bugs.freedesktop.org/show_bug.cgi?id=21528. So now xf86-video-siliconmotion-1.7.2 is working on Yeeloong without any patch, only if you use 24 bit depth. If you use 16 bit depth which is required for dual head mode, there are still problems. http://bugs.freedesktop.org/show_bug.cgi?id=21622 Also there maybe some configuration options are needed in xorg.conf for X to work, so please check out my xorg.conf on fuloong2f and yeeloong.

Labels: , , ,