ubuntu 12.04 编译内核,ubuntu设置默认内核
老铁们,大家好,相信还有很多朋友对于ubuntu 12.04 编译内核和ubuntu设置默认内核的相关问题不太懂,没关系,今天就由我来为大家分享分享ubuntu 12.04 编译内核以及ubuntu设置默认内核的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
在ubuntu 12.04下怎样编译极路由1s的openwrt固件
搭建编译环境
Ubuntu x64 12.04下的命令:
sudo apt-get install subversion
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install g++
sudo apt-get install gawk
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
当然,也可以将上面的命令合起来:
sudo apt-get install subversion git flex g++ gawk zlib1g-dev libncurses5-dev
建立工作目录及获取openwrt源码
mkdir openwrt
cd openwrt
svn co svn://svn.openwrt.org/openwrt/trunk/
trunk是openwrt的开发版,openwrt有好几个分支,要编译其它分支,sun://后的换为相应的地址即可。
建立openwrt文件夹是为了方便存放不同分支的代码,如果你不需要,可以省略“mkdir openwrt”及“cd openwrt”。
如果svn的速度慢,可以使用openwrt的第三方镜像,比如国内的openwrt中文论坛所建的镜像。
更新feed及添加package
openwrt的一些额外功能都是通过package实现的,很多个package就组成了一个feed,我们可以根据需求更新自己想要的feed的源。例如我们需要luci的web管理界面和python的支持,那么我们需要更新luci和packages的feed源:
cd trunk
./scripts/feeds update luci packages
./scripts/feeds install luci packages
当然,我们推荐更新所有feed并添加所有package
./scripts/feeds update-a
./scripts/feeds install-a
配置及编译
进入配置界面
make menuconfig
以后再次编译时,要先切换到工作目录:
cd openwrt
cd trunk
然后在次过程中选择好target system和target profile,target system需要看你路由器的cpu芯片信息,target profile是你路由器的型号。接下来就可以根据自己的需求进行定制了,添加上需要的支持或去掉无用的包,按“Y”在固件中添加包按“Y”,按“N”去掉不需要的包。
要运行OH3C,必须有python-mini(lang->python->python-mini)的支持。
如果你的路由器flash空间比较紧张,可以去掉下面的包:
Kernel modules->Network Support->kmod-ppp
Network->ppp
选好后就保存配置退出开始编译了:
make-j
-j后面可以跟参数,即同时进行的任务数,比如2或4,不跟参数意为不限制同时进行的任务数,会大大减少编译的时间,特别是首次编译。
编译过程中可能不会下载一些东西,所以断网可能造成编译中断,编译所需时间与你的CPU及网速有很大关系,一般首次编译在40分钟到2小时之间不等。以后的编译一般在30分钟之内。
如何用ubuntu 12.04 32bit 编译android 4.4.4
系统环境
系统:Ubuntu12.04 64位系统。
源码:Android4.4源码。
选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾。
步骤
配置jdk6
Android官方给的步骤是用OpenJdk,实测是不行的。网上找到
这个网址有需要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增加自己的jdk
bin目录到PATH里面。同时新增如下环境变量:
CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir
然后执行如下命令,设置系统的默认jdk:
$ sudo update-alternatives--install/usr/bin/java java/usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives--install/usr/bin/javac javac/usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives--install/usr/bin/javaws javaws/usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives--install/usr/bin/jar jar/usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives--install/usr/bin/javap javap/usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives--config java
安装软件包
能装的都要装上,以免编译失败,又要回过头重装,如下:
$ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo
libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev
zlib1g-dev ia32-libs libxml2-utils lzma
编译源码
到源码目录下,如下:
$ source build/envsetup.sh
$ lunch
选择arm平台。
$ make-jn
n为CPU个数的两倍,主要是提高编译速度。
可能的错误
编译过程碰到如下错误:
File"/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File"/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
一般情况是因为前面的javap没有配置所致。如果必须的软件包没有安装,也会有类似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包即可。
如何配置编译在mini2440开发板上运行的linux内核
参考:
系统ubuntu12.04(非虚拟机下)
mini2440
CPU型号: S3C2440AL-40
Nanflash型号:K9F1G08
Norflash型号:SST39VF1601
LCD:统宝 240 x 320
$:普通账户
#:root账户
*当shell下输入路径时可使用tab键自动补全
(一)建立交叉编译环境
1.将mini2440光盘中的linux文件夹拷贝到/home/lianghuiyong并改名为Linux_share
(其中两个文档为我后面添加进去的)
2.Ctrl+Alt+T打开shell
3.$ su- root(切换root权限)
4.# cd/home/lianghuiyong/Linux_share
5.解压安装arm-linux-gcc编辑器
# tar xvzf arm-linux-gcc-4.4.3.tar.gz–C///注意:C后面有个空格
执行该命令,将把 arm-linux-gcc安装到/usr/loca/arm/4.4.3目录。这句来自mini2440用户手册,我发现其实是安装到/opt/FriendlyARM/toolchain/4.4.3目录
6.# vim/root/.bashrc
7.在最后一行添加:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin//opt/FriendlyARM/toolschain/4.4.3/bin为arm-linux-gcc环境变量
:wq保存退出。
# source~/.bashrc
8.# sudo gedit/etc/environment
games后面添加标记部分
9.# arm-linux-gcc-v//gcc后面有空格
测试hello.c(这是在安装了第二部分的linux示例程序才有examples/hello目录)
# cd/opt/FriendlyARM/mini2440/examples/hello
# arm-linux-gcc-o hello hello.c
#./hello
(二)安装源代码及其他工具
创建工作目录(以下都为root环境下):
# mkdir-p/opt/FriendlyARM/mini2440
1>>解压安装linux内核源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/linux-2.6.32.2-mini2440-20100106.tar.gz
2>>解压安装嵌入式图形系统qtopia源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/x86-qtopia.tgz
# tar xvzf/home/lianghuiyong/Linux_share/arm-qtopia.tgz
3>>解压安装嵌入式图形系统 QtE-4.6.1源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/arm-qte-4.6.3-20100802.tar.gz
4>>解压安装busybox源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/busybox-1.13.3-mini2440.tgz
5>>解压安装 Linux示例程序
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/examples-20100108.tgz
6>>解压安装 vboot源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/vboot-src-20100106.tar.gz
7>>解压安装 bootloader源代码
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/bootloader.tgz
8>>解压创建目标文件系统
# cd/opt/FriendlyARM/mini2440
#tar xvzf/home/lianghuiyong/Linux_share/rootfs_qtopia_qt4-20100816.tar.gz
9>>解压安装目标文件系统映象制作工具 mkyaffs2image
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/mkyaffs2image.tgz–C/
10>>解压安装LogoMaker
# cd/opt/FriendlyARM/mini2440
# tar xvzf/home/lianghuiyong/Linux_share/logomaker.tgz–C/
(三)定制linux内核及制作文件系统
config_mini2440_x35–适用于 Sony 3.5” LCD的内核配置文件
config_mini2440_t35–适用于统宝 3.5” LCD的内核配置文件
config_mini2440_l80–适用于 Sharp 8” LCD(或兼容)的内核配置文件
config_mini2440_n35–适用于 NEC3.5” LCD的内核配置文件
config_mini2440_h43–适用于 4.3” LCD的内核配置文件
config_mini2440_a70–适用于群创 7” LCD的内核配置文件
config_mini2440_vga1024x768–适用于 VGA显示输出(分辨率 1024x768)模块的内核
配置文件
1.配置缺省文件config_t35(统宝240x320)
# cd/opt/FriendlyARM/mini2440/linux-2.6.32.2
# cp config_mini2440_t35.config
# make menuconfig
出现界面
不做更改,exit退出。这样做是为了生成相应配置(统宝240x320)的头文件。
2.编译内核
在/opt/FriendlyARM/mini2440/linux-2.6.32.2目录下编译内核
#make zImage
编译结束后,会在 arch/arm/boot目录下生成 linux内核映象文件:zImage(zImage可下载到开发板测试)
3.定制linux内核(根据用户手册来走一遍)
# cd/opt/FriendlyARM/mini2440/linux-2.6.32.2
# make menuconfig
出现配置选项:
3.1配置cpu
主菜单-->System--> Type S3C2400 Machines--> FriendlyARM Mini2440 development board
3.2配置lcd驱动
主菜单-->Device Drivers-->Graphics support-->Support for frame buffer devices-->Backlight-->LCD select-->3.5 inch 240x320 Toppoly LCD
3.3配置触摸屏
主菜单-->Device Drivers-->Input device support-->Touchscreens-->Samsung s3c24410 touchscreen input driver
3.4配置usb鼠标和键盘
主菜单-->Device Drivers-->hid devices-->USB Human interface Device
3.5配置优盘
主菜单-->Device Drivers-->SCSI device support--> SCSI disk
3.6配置万能驱动USB摄像头
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->V4L USB devices-->GSPCA based webcams-->ALi USB m 5602 Camera Driver
3.7配置CMOS摄像头驱动
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->OV9650 on the s3c2440 driver
3.8配置网卡驱动
主菜单-->Netwoking support-->Networking options-->选择Unix和TCP/IP
主菜单-->Device Drivers-->Network device support-->Ethernet(10 or 100Mbit)-->
选择<*> Generic Media Independent Interface device support
<*> DM9000 support
3.9配置USB无线网卡驱动
主菜单-->Netwoking support-->wireless-->IEEE 802.11
主菜单-->Device Drivers-->Netwoking device support-->wireless LAN-->Wireless LAN(IEEE 802.11)-->Ralink driver support-->
3.10配置音频驱动
主菜单-->Device Drivers-->Sound card supprt-->OSS Mixer API-->ALSA for Soc audio support-->SoC Audio for the samsung S3Cxxxx Chips
3.11配置SD/MMC卡驱动
主菜单-->Device Drivers-->MMC/SD/SDIO card-->samsung S3C SD/MMC card
3.12配置看门狗驱动支持
主菜单-->Device Drivers-->Watchdog Timer-->s3c2440 Watchdog
3.13配置LED驱动
主菜单-->Device Drivers-->Character devices-->LED support for Mini2440
3.14配置按键驱动
主菜单-->Device Drivers-->Character devices-->Buttons driver
3.15配置PWM控制蜂鸣器驱动
主菜单-->Device Drivers-->Character devices-->buzzer driver for
3.16配置AD转换驱动
主菜单-->Device Drivers-->Character devices-->ADC driver for
3.17配置串口驱动
主菜单-->Device Drivers-->Character devices-->Serial drivers-->samsung S3C2440/S3C2442
3.18如何配置RTC实时时钟驱动
主菜单-->Device Drivers-->Real Time Clock-->samsung S3C series SoC RTC
3.19配置I2C-EEPROM驱动支持
主菜单-->Device Drivers-->I2C support-->I2C Hardware Bus support-->S3C2410 I2C Driver
3.20配置yaff2s文件系统的支持
主菜单-->Device Drivers-->MTD-->NAND Device Support-->NAND FLASH Support
主菜单-->File systems-->Miscellaneous filesystems-->YAFFS2 file system support
3.21配置EXT2/VFAT/ NFS等文件系统
主菜单-->File systems-->Network File Systems-->root file system on NFS
为了支持FAT32文件系统.
主菜单-->File systems-->DOS/FAT/NT Filesystems-->VFAT(windows-95) fs support
关于mini2440 linux内核裁剪到此为止,退出后有一个是否保存提示,选择保存!
3.22制作Linux logo
本来想使用Logomaker,结果生成的图片都是无数据的,这可能和系统内一些参数有关
使用命令方式制作logo:
在图片(open_show.png)目录下
# pngtopnm open_show.png> temp.ppm
# ppmquant 224 temp.ppm>temp2.ppm
# pnmnoraw temp2.ppm> logo.ppm
将目录下生成的logo.ppm改成linux_logo_clut224.ppm,替代linux2.6.32.2/drivers/video/logo目录下的同名文件