内核4.10在龙芯3A3000笔记本上的移植(一)

1. 下载内核源码
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
此处下载的是 mainline 的所称为 vanilla 的内核源码

也可下载其它版本(如 stable 版)的源码,具体链接详见:
https://git.kernel.org/

2. 配置内核
   a) cd linux
   b) make mrproper
   c) 如果是想把内核安装到自己的系统上,建议使用已安装好的发行版拥有的配置文件,即:
      $ cp /boot/config-`uname -r` .config
      也可以:
      $ cp arch/mips/configs/loongson3_defconfig .config   *** 注意此处的 loongson3_defconfig 需先用
        http://www.loongnix.org/cgit/linux-4.4/tree/arch/mips/configs/ 下的同名文件替换
   d) $ make menuconfig (运行此命令前需要有依赖包 ncurses-devel)
      此命令可以在当前(缺省)内核配置的基础上修改一些小地方,比如说新内核多了些新功能,而你想要用到它们,可以在这儿进行配置,然后生成新的内核配置文件

3. 编译内核
   $ make all 配置完后,就可以进行编译了
   说明一下,上述命令其实包括以下命令,即:
   $ make dep       确定依赖性
   $ make zImage    编译压缩内核
   $ make modules   生成内核模块

4. 在编译过程中,会遇到以下问题:
make[1]: *** No rule to make target 'firmware/radeon/BTC_rlc.bin', needed by 'firmware/radeon/BTC_rlc.bin.gen.o'。 停止。
Makefile:1002: recipe for target 'firmware' failed
make: *** [firmware] Error 2

   解决办法:从 http://www.loongnix.org/cgit/linux-4.4/tree/firmware/radeon 链接拷贝以下文件到 firmware/radeon:

"BTC_rlc.bin CAICOS_mc.bin CAICOS_pfp.bin CAICOS_me.bin CAICOS_smc.bin SUMO_rlc.bin SUMO_pfp.bin SUMO_me.bin SUMO_uvd.bin SUMO2_me.bin SUMO2_pfp.bin CYPRESS_uvd.bin CEDAR_me.bin CEDAR_pfp.bin CEDAR_rlc.bin CYPRESS_me.bin CYPRESS_pfp.bin CYPRESS_rlc.bin JUNIPER_me.bin JUNIPER_pfp.bin JUNIPER_rlc.bin R600_rlc.bin R700_rlc.bin REDWOOD_me.bin REDWOOD_pfp.bin  RV710_pfp.bin RV710_me.bin TAHITI_uvd.bin PITCAIRN_pfp.bin PITCAIRN_me.bin PITCAIRN_ce.bin PITCAIRN_rlc.bin PITCAIRN_smc.bin PITCAIRN_mc.bin RV730_smc.bin RV710_uvd.bin BARTS_mc.bin BARTS_me.bin BARTS_pfp.bin BARTS_smc.bin TURKS_pfp.bin TURKS_me.bin TURKS_mc.bin RS780_me.bin RS780_pfp.bin RS780_uvd.bin TURKS_smc.bin"

5. 在编译中,可能会遇到:
  OBJCOPY arch/mips/boot/compressed/vmlinux.bin
  LZMA    arch/mips/boot/compressed/vmlinux.bin.z
/bin/sh: lzma: 未找到命令
arch/mips/boot/compressed/Makefile:70: recipe for target 'arch/mips/boot/compressed/vmlinux.bin.z' failed
make[1]: *** [arch/mips/boot/compressed/vmlinux.bin.z] Error 1
arch/mips/Makefile:377: recipe for target 'vmlinuz' failed
make: *** [vmlinuz] Error 2

  解决办法:安装 xz-lzma-compat 包   

编译完成后:
6. 安装模块
   $ sudo make modules_install

7. 安装内核
   $ sudo make install
 
8. 生成 initrd 文件
   $ sudo mkinitrd /boot/initramfs.4.10.0+ 4.10.0+    #后面的“4.10.0+”是在 /usr/lib/modules 目录下相应的目录名  
 
9. 更新 boot loader 相关配置文件,/boot/boot.cfg,添加下面内容,*** 注意是添加:
   title Fedora, with Linux 4.10.0+
   kernel (wd0,0)/boot/vmlinuz-4.10.0+
   initrd (wd0,0)/boot/initramfs-4.10.0+.img
   args root=UUID=414542a9-54f8-4c62-a500-6789dc759d05 rhgb quiet

10. 重启,测试新装内核

6 个评论

你这是移植了,还是教别人移植?
我已经成功移植了,把移植过程和解决问题的经历共享
能正常使用?
此 kernel 加了有关显卡 firmware,再加上文 “内核4.10在龙芯3A3000笔记本上的移植(二)”中所附 patch,在龙芯 3a3000、3a3000 台式机和一台 3a2000 台式机上都做过测试(用的是 Fedora 25),现在已能正常进入图形界面,但缺少以太网卡驱动,现正做移植,成功后会有续篇,敬请关注。
等的就是你这个"(二)"
呵呵,看来是行家,接下来还会有续篇,因为系统正常起来后,还缺少网络支持,敬请关注

要回复文章请先登录注册