====== linux-loongson/community (社区版龙芯Linux) ====== Sources: http://dev.lemote.com/trac/linux-loongson-community/wiki contact project's owners by Or Or Alexandre Oliva If you have any issues, login and create a ​newticket ===== Introduction (项目简介) ===== ---- This project is launched to maintain the latest ​linux[1] for ​Loongson, the objective is making the loongson machines be friendly supported. linux-loongson/community here means it is a community project and welcome everybody's contribution. Any questions, suggestions, bug reports and patches are welcome TO the related ​mailing list and CC to the ​maintainers, Or simply record them ​here. * The relationship between this project and the mainline linux kernel(maintained by Linus) * this project mainly focus on MIPS(exactly, Loongson), but the mainline linux focus on lots of architectures(X86, PowerPC, MIPS, ARM, Sh, Sparc...). * most of the stable patchset in this project will be pushed into ​linux-MIPS(linux for MIPS, maintained by Ralf) firstly and at last go into the mainline linux. * So, if you need the newest or the full loongson specific support, please come here. * The relationship between this project and ​the one maintained by Lemote * This project is developed & maintained by the people from community (completely for free, no pay) and therefore can get/apply more support from the community, such as bug report, bug fixes and so forth. * This project try to update with the mainline linux as soon as possible and try to upstream the stable patchsets in this project to the mainline, then people can get the most stable support from mainline. * Most of the basic BSP in this project is originally contributed by Lemote and some latest patchsets from the Lemote will also be applied into this project. So, this project will function as a bridge between the Loongson companies and the community. --- [1] kernel version >= 2.6.31 are maintained in this project. for kernel version (>= 2.6.29 & <= 2.6.30) and the real time extension for Loongson, please access ​http://dev.lemote.com/code/rt4ls for kernel version = 2.6.27 (from ​Lemote), please access ​http://dev.lemote.com/code/linux_loongson ===== Mailing list (邮件列表) ===== loongson-dev [AT] googlegroups [DOT] com * Subscribe - Send an empty email to loongson-dev+subscribe [at] googlegroups [dot] com * Unsubscribe - Send an empty email to loongson-dev+unsubscribe [at] googlegroups [dot] com ===== Defect Report (问题报告) ===== ---- Welcome to report defects ​here ===== Patchwork (补丁管理) ===== ---- All patches sent to loongson-dev mailing list will be stored in the ​patchwork ===== Maintaining (项目维护) ===== ---- ==== Current maintainers ==== * Alexandre Oliva * Maintainer of Gnewsense for Loongson * Zhang Le * Maintainer of Gentoo for Loongson * Wu Zhangjin * Founder of this project and the ​rt4ls project ==== Main tasks ==== * Response questions * Answer them if you are familiar with, otherwise forward to the other related folks. * Record bug reports and fix bugs * The bug report should be recorded via ​this link * Review patches, determine if apply them and update the status timely * All patches should be sent to the loongson-dev mailing list and stored in the ​patchwork. * Sync the 'master' branch with ​the mainline one maintained by Linus * Sync the 'stable'/'long-term' branches with the corresponding mainline branches * ​git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.xx.y.git * ​git://git.kernel.org/pub/scm/linux/kernel/git/longterm/linux-2.6.xx.y.git * Upstream the stable patches to the mainline * The MIPS related patches should be sent to linux-mips [at] linux-mips [dot] org and its maintainer ralf [at] linux-mips [dot] org, to track the status of your patch, please check its ​patchwork. * The other patches should be sent to the corresponding ​mailing list and maintainers. * Important patchworks include ​https://patchwork.kernel.org/ and ​http://patchwork.ozlabs.org/ * maintainers can be gotten from with "scripts/get_maintainer.pl --no-git -f" * All patches before sending out should be checked by scripts/checkpatch.pl * Please get more information for how to upstream patches from ​Documentation/SubmittingPatches * * The detailed tasks should be recorded for better management via the ​this link. ==== How to maintain ==== * The basic procedure of an update - https://web.archive.org/web/20140606220400/http://dev.lemote.com/trac/linux-loongson-community/wiki/procedure-of-an-update * Steps for fixing bugs - https://web.archive.org/web/20140606220400/http://dev.lemote.com/trac/linux-loongson-community/wiki/fixing-bugs ==== Become a maintainer ==== * Steps to become a maintainer - https://web.archive.org/web/20140606220400/http://dev.lemote.com/trac/linux-loongson-community/wiki/become-a-maintainer ===== Source (内核源代码) ===== ==== Git repository (Git仓库) ==== * Git repo of this project * git://dev.lemote.com/linux-loongson-community.git (git protocol, anonymous) * http://dev.lemote.com/http_git/linux-loongson-community.git (http protocol, if the git protocol is blocked by firewall) * git@dev.lemote.com:linux-loongson-community.git (ssh protocol, if you are this project's owner) * Related git repo * git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git (linus' git tree, mainline linux) * git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.xx.y.git (greg's git tree series, stable linux) * git://www.linux-mips.org/pub/scm/linux.git (Ralf's git tree, linux-mips) === Download (下载) === To get the source code, there are two methods: ​Browser source code and download them via the Tags or Branch commits. Clone, pull or fetch one branch of the git repository (use master branch as an example) $ git clone git://dev.lemote.com/linux-loongson-community.git // Clone the whole git repository $ git pull git://dev.lemote.com/linux-loongson-community.git master // Fetch one branch and merge it into your current branch $ git fetch git://dev.lemote.com/linux-loongson-community.git master // Fetch one branch, not merge it, you can handle the result via the FETCH_HEAD To get more information about git, please goto the Git part of the ​Doc Section ===== Supported Machines (支持的机器型号) ===== * Lemote FuLoong-2E Box * Lemote Loongson-2F family of machines * ​FuLoong-2F Box, * ​YeeLoong netbook(8.9'', 10''), * ​U-NAS, HiLoong, * ​LynLoong All-in-one PC, * MengLoong netbook * ​DEXXON Gdium netbook * Basic support has been provided by this project! Almost works except sound,PM (2010-11-20) * To get full support, you may need to get the kernel from: git.opensde.net/users/amery/linux-2.6.29-gdium or ​http://repo.or.cz/w/linux-2.6/linux-mips/linux-gdium.git ===== Compile (内核编译) ===== ==== Config (配置) ==== default config files FuLoong-2E Box: arch/mips/configs/fuloong2e_defconfig Lemote 2F family of machines: arch/mips/configs/lemote2f_*defconfig Dexxon Gdium netbook: arch/mips/configs/gdium_*defconfig Config Options CONFIG_LEMOTE_YEELOONG2F: YeeLoong platform specific drivers (backlight, suspend, battery, sensors, hotkey/input...) CONFIG_LEMOTE_LYNLOONG2F: LynLoong platform specific drivers (backlight, suspend drivers) CONFIG_LOONGSON2_CPUFREQ: Loongson-2F cpu frequency scaling driver(The conservative governor is Preferred) CONFIG_CS5536_MFGPT: external CS5536 MFGPT Timer (used in Lemote 2F family of machines, before 2.6.37) CONFIG_R4K_TIMER_FOR_CPUFREQ: R4K Timer enhancement for CPUFreq (From 2.6.37) CONFIG_FB_SM7XX: SM712 Video Card Driver used in YeeLoong netbook CONFIG_RTL8187B: RTL8187B Wifi Driver used in YeeLoong netbook CONFIG_LOONGSON_SUSPEND, CONFIG_SUSPEND: Suspend support of Lemote-2F machines CONFIG_HIBERNATION, CONFIG_PM_STD_PARTITION="/dev/hda3", Hibernation support, /dev/hda3 is the swap partition of your machine, you can pass "resume=/dev/hdaX" or "resume=/dev/sdaX" to override it. ==== Local-Compile (本地编译) ==== Local-Compiler For a distribution which did not explicitly say they have compiled the toolchains with the ​patch (This patch have been merged into cvs repository of binutils), Please download the ​fix-nop.c from ​Heihaier, and fix your toolchains as following: $ make fix-nop $ ./fix-nop $(which ld) $ ./fix-nop $(which as) Compile $ make menuconfig $ make -j2 $ make modules_install $ make install ==== Cross-Compile (交叉编译) ==== Exisiting cross-compiler ​Gcc 4.4.1 + Binutils 2.20 on X86 (!Note: you need to config the PATH and LIBRARY_PATH environment in /etc/profile or .bashrc for the cross-compiler) Build Cross-Compiler for Loongson from scratch English Version ​32bit ​64bit, ​Chinese Version (!Note: A ​patch for binutils 2.20 is needed, but for the version in cvs repository, the patch is already in.) Compile $ make ARCH=mips lemote2f_defconfig // Generate .config from lemote2f_defconfig $ make menuconfig ARCH=mips $ make CROSS_COMPILE=- ARCH=mips -j $ make modules_install INSTALL_MOD_PATH=/path/to/modules_install_directory $ make install INSTALL_PATH=/path/to/kernel_image_install_directory ==== Boot (引导) ==== For Dexxon Gdium Netbook, you must set the al and karg variables of PMON to boot the kernel, al is used to indicate the path to the kernel image, karg is used to pass the kernel command line parameters. After power on the netbook, enter into the PMON command line via pressing 'c' or , then, you can get help via the "h *" command, please get details from ​http://olph.gdium.com/wiki/doku.php/system:pmon or the ​PMON user manual. For the other machines, except the above method, you can also edit the config file(/boot/boot.cfg) of PMON, here is an example: # /boot/boot.cfg default 0 showmenu 1 title Fedora MIPS/N32 kernel (wd0,1)/boot/vmlinuz-2.6.31-0.167.rc5.fc11.mips64el args console=tty root=/dev/sda2 The above configuration means: "default 0" means if there are lots of config entries in the boot.cfg, the default entry is the first one. "showmenu 1" menas the menu will be shown. "title" indicates the Title of the entry shown in the menu, here is "Fedora MIPS/N32". "kernel" indicates the path to the kernel image file, (wd0, 1) here indicates the /dev/sda2, so, it means vmlinuz-2.6.31-0.167.rc5.fc11.mips64el is stored in the /dev/sda2 partition and put into the /boot directory. If you have stored the kernel image in /dev/sda4, please use (wd0,3) instead. "args" indicates the kernel command line arguments. root=/dev/sda2 means the partition stored the root file system is /dev/sda2. Please get more information from the ​PMON document(Chinese). BIOS & Bootloader (BIOS和引导器) PMON PMON is the current BIOS & Bootloader pre-installed on the loongson family of machines. its homepage: ​http://dev.lemote.com/code/pmon. The PMON for gdium has a different repository tree. ​http://dev.lemote.com/code/pmon-gdium Grub ​Grub itself is only a bootloader, which have been ported to YeeLoong for the Gnewsense project. but perhaps you can make it work in the other distributions. ​Grub 1.98 is available for YeeLoong, but currently, it can only be loaded from PMON. U-boot A primary version for YeeLoong is available here: ​http://dev.lemote.com/code/U-boot Linux + Kexec Kexec support(Only 32bit currently) is added for Loongson in the tiny36 branch of this project, with the kernel support and the user-space ​kexec-tools, we can load another kernel image, then, Linux itself work as a bootloader. To use it, please read the "[LLC, Kexec] Linux for Loongson is ready as bootloader" thread in the linux-dev google group, of course, you can access it here: kexec-loongson Kexec for Loongson? U-EFI Not usable yet, homepage: ​http://dev.lemote.com/code/EFI-MIPS GNU/Linux distribution (龙芯Linux发行版) Rescue & Recovery system (急救与还原系统) Rescue system is always needed when you have broken the whole system, you can load it via tftp protocol or from a u-disk to get a basic system ;) ​Rescue for YeeLoong ​Rescue for FuLoong Recovery system(support all of Loongson-2F machines made by Lemote) will help to _format_ your broken system and re-install a basic system there(be careful!). Gnewsense (Recommend) Gnewsense is a 100% free/libre GNU/Linux distribution developed by FSF. Installation guide is available here: ​http://wiki.gnewsense.org/Projects/GNewSenseToMIPS Loonux Loonux is based on the GNU/Debian developed by Lemote, and it is a distribution pre-installed in the loongson machines, but the software repository of this distribution is _too_ old! Installtation guide: ​English Version ​Chinese Version Debian 6.0 (Recommend) This Debian 6.0 is not that one from the official debian, but improved from it, which is developed by ​Liu Shiwei. Why this one? it is newer and better than the one from Lemote and also from the official debian, which provides feature-rich kernel, accelerated video driver... please get it here: ​http://www.anheng.com.cn/loongson/install/ Install: download the latest compressed system, decompress it to one of the partitions and config /boot/boot.cfg then boot it. To install debian on your Gdium, please refer to ​http://vm-kernel.org/blog/2009/03/20/how-to-install-debian-lenny-on-gdium/ Change the default language to your preferable one: $ dpkg-reconfigure locales Gentoo n32 Gentoo now provides experimental stage3 on its official mirrors. It is located under experimental/mips/stages/loongson/ of each mirror, like ​http://mirrors.xmu.edu.cn/gentoo/experimental/mips/stages/loongson. This is maintained by Zhang Le. It will be updated regularly. You should use ​Gentoo Loongson Overlay which is also maintained by Zhang Le. An older stage4 could be get here: ​http://www.bjlx.org.cn/loongson/gentoo/, the root user's password is loongson. This one is provided by zenglanmu, based on Zhang Le's previous work ​http://tinyurl/loongson-gentoo. Thanks to Liu Shiwei for hosting it. Fedora n32 This should be like the Gentoo n32, but softwares are packaged in RPM format, the root user's password is redhat, this is maintained by lazyfai. please get it here: ​http://lazyfai.dyndns.org/loongson/fedora-n32-rootfs-20091017.tar.gz A new project of porting Fedora to the MIPS architecture was launched at ​https://fedoraproject.org/wiki/Architectures/MIPS NixOS n32 Another n32 distribution for Loongson machines is coming, it is ​NixOS, to install and boot it on Loongson machines, please refer to ​this link . ArchLinux (In development) ​ArchLinux has been ported to Loongson platforms, it is hosted on ​archloong.info and maintained by ​heihaier. XianGe Linux n32 ​XianGeLinux has supported Loongson platforms, the related documentation is ​here. Parabola GNU/Linux-libre ​Parabola is a fully free (as in freedom) derivative of Arch Linux. Installation instructions for the Loongson port can be found ​here. The Other Operating System OpenBSD ​OpenBSD has been ported to Loongson platforms, homepage: ​http://openbsd.org/loongson.html RT-Thread ​RT-Thread has been ported to Loongson-I platforms, the related documentation and source code are available ​here. Daily Softwares (常用软件) Please see Daily Software For Loongson. Virtual Machines (虚拟机) Gxemul There is an existing ​gxemul for Loongson-2E, ​user guide(Chinese) Qemu Qemu for loongson-2E is maintained by !chenhuacai [at] gmail [dot] com at: ​http://dev.lemote.com/code/QEMU-Loongson, the version for Loongson-2F is in the progress of development and maintained in this ​git repo by ​Zhou Yajin(Not active). Note: 'Cause Loongson is a MIPS-III compatible processor, most of the instructions are the same as the other MIPS-III processors, you can use the Qemu/Malta? or the above Qemu/Loongson?-2E to emulate the Loongson family of machines. Doc (开发文档) Loongson Developers Manual (龙芯开发者手册) From Lemote ​The porting & development manual of Linux for Loongson, Chinese ​PMON development manual From community ​http://dev.lemote.com/code/loongson-doc (not finish yet) Git Documentation (Git使用文档) Git User Manual ​Chinese Version ​English Version ​Kernel Hackers' Guide to git Related useful tools: diff, patch, vimdiff, ​Guilt, patchutils(i.e. splitdiff). Loongson User Manual (龙芯处理器用户手册) Loongson-2E Manual ​Chinese Version ​English Version Loongson-2F Manual ​Chinese Version ​English Version Loongson-2 built-in Northbridge Manual ​Chinese Version ​English Version(Bonito64 Specification) CS5536 Datasheet (南桥cs5536规格书) ​AMD GeodeTM CS5536 Companion Device Data Book, English SM712 Specification (显卡SM712规格书) ​LynxEM+Databook Rev 1.2 (SM712 Video Card Specification), English SM502 Specification (显卡SM502规格书) ​SM502 Mobile Multimedia Companion Chip Databook V1.00, English TODO (待做工作) Linux-Mainline ​http://kernelnewbies.org/KernelProjects Linux-MIPS ​http://www.linux-mips.org/wiki/Todo_List More: Maintain the Hibernation support for MIPS arch/mips/power/ Maintain the Ftrace support for MIPS arch/mips/kernel/{ftrace.c, mcount.S} The latest development status: Add SMP support: ​http://patchwork.linux-mips.org/patch/1552/ Maintain the Compressed-kernel support for MIPS arch/mips/boot/compressed/ Flush cache after decompressing the kernel image into the mermory: ​http://patchwork.linux-mips.org/patch/1565/ Add the checksum support to ensure the compressed kernel is not broken, add the checksum of the vmlinux into the vmlinuz, calculate the checksum after decompressing it and compare it with the recorded checksum. Add more image format support, such as uImage for U-boot Adds MIPS specific dma_mmap_coherent() This is necessary for ALSA audio output, without it, the audio output will be broken. // ok $ mplayer -ao oss file.mp3 // broken without dma_mmap_coherent() $ mplayer -ao alsa file.mp3 please learn more here: ​http://www.linux-mips.org/archives/linux-mips/2008-08/msg00178.html Note!: A workaround have been added in sound/core/pcm_native.c, please refer to snd_pcm_default_page_ops(). Upstream the high-resolution sched_clock() ​http://patchwork.linux-mips.org/project/linux-mips/list/?q=sched_clock System Call Tracer of Ftrace (please refer to syscall tracer in X86) Perf support (please refer to tools/perf/) some patches for Perf support have been sent to linux-mips mailing list: ​http://patchwork.linux-mips.org/project/linux-mips/list/?=Deng-Cheng+Zhu&submitter=168&state=* A primary perf support for loongson2 ​http://patchwork.linux-mips.org/patch/1151/ A branch rt/ftrace+perf in the rt4ls git repo is created for developing the Perf support of Loongson ​http://dev.lemote.com/cgit/rt4ls.git/log/?h=rt/ftrace%2bperf FDT support (interface between bootloader and kernel, please refer to PowerPC) A RFC patchset was sent by Dezhong Diao (dediao) to linux-mips mailing list: The Device Tree Patch for MIPS Shall we make cpuidle work on MIPS? I'm not sure, but here include the important resources about cpuidle: The cpuidle subsystem: ​http://lwn.net/Articles/384146/ Introducing cpuidle: core cpuidle infrastructure: ​http://lwn.net/Articles/221791/ More details about cpuidle and the difference from cpufreq: "cpuidle—Do nothing, efficiently. . .": ​http://www.kernel.org/doc/ols/2007/ols2007v2-pages-119-126.pdf (The exact difference between cpuidle and cpufreq is cpuidle manage the 'idle' states, cpufreq manage the 'active' states) Clean up the atomic operations on MIPS Ralf has done some works on it, please refer to "MIPS: Get rid of branches to .subsections": ​http://patchwork.linux-mips.org/patch/1546/ Except it, we can try to merge the duplicated source code between R10000_LLSC_WAR==1 and R10000_LLSC_WAR==0, how? define a macro beqz for them respectively to beqzl and beqz. This will remove about 700 lines. Kexec/Kdump? for MIPS There was already a basic kexec support in linux-MIPS but it was not complete, the following are needed to do: Accept the kernel arguments from user-space kexec tools Support kdump Support 64bit kernel Wu Zhangjin have done some work on it, please refer to the tiny36 branch of this linux-loongson-community git repository and also ​here. Linux-Loongson Add the Loongson specific delay implementation Based on the principle of arch/mips/cavium-octeon/csrc-octeon.c, We may be possible to add a more precise delay() implementation. And perhaps we need to define a read_current_timer() and the related macro: ARCH_HAS_READ_CURRENT_TIMER to speed up the calculation of loops_per_jiffy for delay(). Add the Loongson-2F specific prefetch macro There is no prefetch instruction in Loongson-2F, but we can try to emulate one with the help of "load $0, addr" to pre-fetch the content from memory to cache. Fix the NOP issue of Loongson2F in kernel space Heihaier have contributed the primary patch, please get more information from loongson-dev google group: Dynamic fix loongson2f nop in kernel Maintain the latest linux(>=2.6.34) for Loongson arch/mips/oprofile/ (loongson2 oprofile support) arch/mips/kernel/cpufreq/ (loongson2 cpu freqency scaling support) arch/mips/loongson/common/pm.c (loongson2 Suspend support) arch/mips/pci/{fixup-fuloong2e.c, fixup-lemote2f.c, ops-loongson2.c} (Loongson2 pci support) arch/mips/loongson/{fuloong-2e, lemote-2f}/ (loongson family of machines support) arch/mips/include/asm/mach-loongson/ (loongson platform specific header files) Upstream the left YeeLoong platform specific drivers drivers/platform/mips/ or ​http://patchwork.linux-mips.org/project/linux-mips/list/?q=YeeLoong Add Genirq threading support for the platform drivers Convert the irq handlers under drivers/platform/mips to irq threads. please refer to: ​genirq: add threaded interrupt handler support ​USB genirq infrastructure for threaded interrupt handlers V2 Maintain the Silicon Motion Driver (SM712 video card driver) drivers/staging/sm7xx/, please refer to the TODO file Maintain/Upstream? the RTL8187B wifi driver drivers/net/wireless/rtl8187b/, to ensure it work with the potential new APIs or make the mainline similar drivers support rtl8187b. Merge all of the loongson machines' support Merge the fuloong-2e, lemote-2f and gdium support, then all of the loongson machines can use the same kernel if not enable the 2e, 2f specific instructions. Power Management stuff Upstream the new cpufreq driver and the R4K for cpufreq support. Clean up the CS5536 support based on arch/mips/loongson/common/cs5536/ and include/linux/cs5535.h, "grep CS553[56] -ur {drivers,sound}/" Use the common drivers instead of the Loongson specific drivers Move the basic CS5536 support under MFD_SUPPORT (Compare the source code of for Loongson & X86 and abstract it) Add new Gdium machine support Port the sm502 soc sound driver from ​http://repo.or.cz/w/linux-2.6/linux-mips/linux-gdium.git Add new LynLoong machine support Add new Loongson-2G, Loongson-3A family of machines support FAQ (常见问题) Although this project only care about the linux kernel for loongson machines, but without a good X Window and related driver, people will get a bad experience of the machine, the same to the network support, so, we will give you the latest information of them too. Translation (文档翻译) How to translate a web page from Chinese to English, and reversely. 'Cause most of the documenations are not written in our familiar language, so, how to get a translation of it, please go to Translate a web page section of ​the translation support of google, paste the url, select the langauage you want to translate from and to then get what you want. X window How to use a light weight login manager There are lots of light weight login managers, but slim may be a good choice, to use it instead of gdm, you just need to install it and replace the gdm with it. $ sudo apt-get install slim $ sudo dpkg-reconfigure slim To login automatically with slim, you just need to edit /etc/slim.conf and add the following lines: default_user focus_password yes auto_login yes How to make the X window work on my YeeLoong netbook? You need to install a suitable Xorg-server and the related silicon motion driver or the generic fbdev driver. in the default official debian 6.0, that Xrog-server and the fbdev module works on YeeLoong netbook, but don't have a good performance, If you need the fastest X window for your YeeLoong, the ​debian 6.0 maintained by LiuShiwei? are recommended. If you want to get the latest source code and patches of the fastest X window on YeeLoong, please refer to: All about X support for YeeLoong netbook Pixman Loongson SIMD optimization(Contributed by wgge7270 [at] gmail [dot] com) ​http://dev.lemote.com/code/Pixman.Loongson "Pixman is a low level compositing library for X and Cairo. The first release enabled most of the composite functions. The performance gain is not as big as I have expected. Most of the composite sees 20-30% in lowlevel-benchmark, some sees 100% boost or more. Overall performance depends on user scenario." How to make the external vga output of YeeLoong netbook work? Please get the detailed answer from External VGA output of YeeLoong Network (网络支持) To get a better network support, please install the latest NetworkManager? and network-manager-applet into your system. My RTL8187B wifi can not survive from hibernation, how to fix it? Please use kernel >= 2.6.36. How to enable my RTL8187 Wifi when booting? You can append the following line into /etc/rc.local: echo 1 > /sys/class/rfkill/rfkill0/state How to make a 3G card work on my YeeLoong netbook? Please refer to ​how to use 3G card on !YeeLoong netbook(Chinese). How to fix the data corruption problem? (Please refer to "Fuloong 6005 linux-community-kernel corrupt data") $ ethtool -K eth0 rx off $ ethtool -K eth1 rx off The root cause may be the hardware offload support of the network card may not be well supported in Linux, so, disable it as a temp solution. Camera (摄像头支持) How to make camera work? Please install v4l* and webcam* packages, and then, enable it with Fn+ESC, at last, test it with the following command: $ mplayer tv://dev/video0 If works, you will see your head ;-) Audio (音频支持) does YeeLoong? support audio mixing (混音,同时播放多首歌曲)? Yes, but it only support software audio mixing and need an extra config(attached as ​cs5535audio.conf) for the ALSA audio output of cs5535audio card. Install the config: $ cp /path/to/cs5535audio.conf /usr/share/alsa/cards/ Test: // on one terminal $ mplayer -ao alsa file1.mp3 // on another $ mplayer -ao alsa fil2.mp3 // You may get two different songs does Loongson support ALSA audio output? Yes, but please install the kernel >= 2.6.33.3, or 2.6.32, 2.6.31 Video (视频支持) Is there Loongson specific optimization for mplayer? Yes, it is available here: ​http://dev.lemote.com/code/mplayer ffmpeg optimization Loongson ​http://www.bjlx.org.cn/node/769 Power Management (功耗管理) All of the Lemote machines support Hibernation if with the suitable kernel(>=2.6.36) and the right config, but only Loongson (>=2F) family of machines(Currently, Only YeeLoong) support Suspend. Kernel config CPUFreq (动态变频) CONFIG_LOONGSON2_CPUFREQ: Loongson-2F cpu frequency scaling driver(The conservative governor is Preferred) CONFIG_R4K_TIMER_FOR_CPUFREQ: R4K Timer enhancement for CPUFreq (From 2.6.37) Hibernation (休眠) Please enable CONFIG_HIBERNATION and config CONFIG_PM_STD_PARTITION="/dev/hdaX" /dev/hdaX is the swap partition of your machine, you can pass "resume=/dev/hdaY" or "resume=/dev/sdaY" to override it. Suspend support (挂起) Please enable CONFIG_LOONGSON_SUSPEND, CONFIG_SUSPEND, this is only for Loongson2F. Usage Command line interface $ cat /sys/power/state mem disk suspend $ echo disk > /sys/power/state # Hibernation will power off your machine, resume it via powering on it $ echo suspend > /sys/power/state # Suspend will suspend most of your machines, resume it via pressing any key(except the Fn) on your keyboard GUI tools gnome-power-manager or kpowersave are recommended. Bugs & Workarounds Can RTL8187B Wifi Driver survive after resuming from Hibernation? Yes, but please use kernel >= 2.6.36. How can we make dynamic CPU Frequency work normally? Please use kernel >= 2.6.35. Hotkey (热键支持) How to make the hotkey(Function key) work on YeeLoong netbook. You need to ensure the yeeloong platform driver(CONFIG_LEMOTE_YEELOONG2F) is enabled and also the related user-space applications are installed. for the official debian system, if the yeeloong platform driver is enabled, it should work. Which hotkey does YeeLoong netbook support? Fn+ESC Turn on/off camera input Fn+F1 Sleep buttion, report the SLEEP event to user-space, you can configure the action of the sleep button via kpowersave, gnome-power-manager or the other power manager. Fn+F2 Turn on/off LCD output Fn+F3 Swith CRT/LCD output Fn+F4 Turn on/off Mute Fn+F5 Turn on/off Wifi Fn+F6 Turn on/off touchpad (Supported by the EC ROM directly) Fn+Up/Down? Increase/decrease the brightness of the backlight of the LCD Fn+Left/Right? Increse/decrease the volume of sound output Is there a tool to test the hotkey support of kernel? Yes, there is. I have written a simple python script to check the hotkey support of kernel and attached it as ​hotkey.py. (This script can be used as a simple hotkey daemon). Usage: $ sudo apt-get install python-pyosd $ python hotkey.py // You can press Fn+{ESC,F1~F5, ^/V, } and take a look at the command line output How to use hotkeys/function keys in LXDE Please refer to: ​http://wiki.lxde.org/en/LXDE:Questions#Keyboard.2FMouse ​http://www.linlap.com/wiki/samsung+nc10+ecko+plus Sensors (传感器支持) How to get the information of the fan, battery, cpu of YeeLoong netbook? You also need to enable the yeeloong platform driver(CONFIG_LEMOTE_YEELOONG2F) and install the lm-sensors(or the other related tools, for example, sensors-applet) in your system, then you can get the information via the following command. $ sensors yeeloong-virtual-0 Adapter: Virtual device Voltage: +12.46 V Fan RPM: 4403 RPM CPU Temperature: +51.0°C (high = +60.0°C) Battery Temperature: +23.0°C Current: +0.00 A Note: To get the above readable output, please put the ​yeeloong-sensors.conf attachment into the /etc/sensors.d/ directory of your root file system, otherwise, you will only be able to get the raw output, such as in1, fan1, temp1, temp2 ... Serial Port (串口) Is there a serial port on YeeLoong netbook? Yes, but there is no existing J2 header, you need to solder one yourself, here is the ​HOWTO. Develop (开发) Is there a document about kernel debugging on Loongson platform? There is no full document currently, but I have written ​a short document in Chinese, I will translate it later and put it here. Which tools are needed to do basic c programming on Loongson machines? 'Cause Loongson machines use the standard GNU/Linux systems, you can use almost all of the tools you can used in the linux system of the other machines, the most important tools include GNU toolchains: gcc, gdb, binutils ...., and the latest gcc >= 4.4 is recommended for the loongson specific support is only available in this version, to enable the loongson specific support, for loongson2f, please use the option -march=loongson2f, for loongson2e, please use -march=loongson2e. And again, please remember to use the latest binutils (in the cvs repository) for it provides two new options to workaround the hardware bug of loongson2f, to get more information about it, please access ​this page. Does Loongson have oprofile support? Yes, please get more information from Oprofile for Loongson.