本文专属tiny6410吐槽系列~如有得罪,请多包涵~在此也留个联系方式[email protected],欢迎大家一起交流吐槽心得~
不要问我为什么插图会有两种风格,我会告诉你我在上班无聊的时候码字的吗?
今晚来干嘛好呢?干嘛好呢?干嘛好?干好!!!挺好的~
去linux kernel的官网https://www.kernel.org/
又截止到本人码下这些文字的时刻~linux kernel的状态是这样的~
这里我选择的是longterm 3.2.xx版本,至于为什么选择这个版本呢~我会告诉你我把所有longterm版本编译全部编译一遍发现3.2.xx最合适么~原因我不想说了~希望尊贵的您也选择longterm 3.2.xx版本~不然你会被那么莫名其妙的小bug搞得你蛋疼~暂时信我吧亲~~~叫你亲了~~~
把源码放到linux上面解压出来,图形界面也好,命令行也好,不过大家还是熟悉一下命令行解压各种包的命令吧~
切到linux-3.2.53内核目录
老办法,修改Makefile的arch部分arch和cross_conpile
cp arch/arm/config/s3c6400_defconfig到根目录成.config
然后make menuconfig
貌似某些linux的发行版make menuconfig会报错,原因是缺少库~这个原因xubuntu也有,网上搜一下绝对办法,在ubuntu软件中心安装libncurses5-dev库就行,apt-get一下吧~很简单吧~
进来make menuconfig的配置菜单
现在就根据s3c6400_defconfig内核自带的6400的配置文件修改我们需要的内核配置~记得不要问我问什么,现在还是不求甚解的阶段
1.System Type --->MINI6410选中,其他开发板的选择全部取消掉~
2.exit出来,General setup --->System V IPC选上
3.exit出来,Networking support --->选上
配置网络协议栈Networking support --->Networking options --->
4.exit出来,Device Drivers --->Network device support --->Ethernet driver support --->DM9000 support
除了dm9000,其他全部取消
5.exit出来,File systems --->Network File Systems --->
配置内核支持nfs文件系统
6.exit出来,Kernel hacking --->Kernel low-level debugging port (No low-level debugging)--->
OK,在我们没有移植任何驱动的之前,内核这样配置内核的我们又可以使用最实在的网卡dm9000,大爱啊~
exit出来保存,然后就可以make,小弟的小本本虽说是双核,但是我有的是时间~所以就直接make,但是赶时间的朋友们,双核加-j2参数,四核加-j4吧~
于是乎~等啊等啊等
在arch/arm/boot中终于生成zImage文件了~尼玛,害老子等这么久
然后cp到你的共享tftp目录下~我的是/home/chanfai/workspace/tftpboot
然后reset您尊贵的tiny6410,然后minitool下载barebox,配合前面改写的环境变量config,和您配置好的上位机的tftp服务,让barebox自动加载tftp共享文件夹中的zImage,然后内核就乖乖boot起来了~
但是我必须遗憾的告诉你,到目前为止我们仅仅可以看到内核启动启动来,但是您人品足够好的话,至少和我人品差不多的话,您可以看到,内核在挂载完nfs共享文件夹之后就可耻地挂掉了,但是至少你可以看到tiny6410的屏幕是白色的~~噗噗~
那么挂载了nfs后,提示说init进程找不到~
这又是为什么呢?
这也是必须的,因为我们的rootfs的绝对路径只是在barebox中设好而已,内核可以知道我要挂载的nfs在什么地方,但是这个rootfs目录在上位机中是没有任何东西的,好歹第一节我是把配置好的内核和根目录文件都做好才演示的,尼玛~
但是亲们,如果你提示的和我log出来的不一样,那麻烦你回头再一遍我那些没有技术含量的文字重做吧~
当你看到这里的时候~庆幸吧~起码和我的进度是一致的了~今天算你人品不错了~
下节我们来从头做一个nfs端的根目录文件系统吧~
累死我了,抽烟去~