移植ubuntu core到Arm开发板
来源:互联网 发布:知柏地黄丸配方 编辑:程序博客网 时间:2024/05/22 07:06
最初是想把整个ubuntu移植到MX51开发板,因为项目不需要运行桌面系统,所以只移植了一个基本的ubuntu core系统
1. 下载ubuntu core rootfs,关于ubuntu core参考https://wiki.ubuntu.com/Core
http://cdimage.ubuntu.com/ubuntu-core/releases/12.04/release/ubuntu-core-12.04.3-core-armhf.tar.gz
这个镜像就是一个rootfs,可以作为根文件系统使用。
2. 把镜像烧写到开发板的一个分区上
- adb shell进入开发板,busybox mkfs.ext2 /dev/block/mmcblk0p1
- adb shell进入开发板,mount -t ext2 /dev/block/mmcblk0p1 /mnt
- adb push ubuntu-core-12.04.3-core-armhf.tar.gz /mnt/
- adb shell进入开发板,cd /mnt; busybox tar ubuntu-core-12.04.3-core-armhf.tar.gz. 在/dev/block/mmcblk0p1这个分区上建立了一个完整的rootfs,文件系统类型为ext2
3. 我的arm开发板是mx51,修改uboot启动参数如下:
set bootargs_android 'setenv bootargs ${bootargs_base} init=/init rdinit=asdf root=b301 rootfs=ext2 di0_primary video=mxcdi0fb:RGB24,CLAA-WVGA'
粗体是我增加的参数,解释下增加的几个参数:
- rdinit=asdf,rdinit=后的asdf是胡乱写的,这样会设置ramdisk_execute_command为asdf,就导致内核代码
if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
sys_access访问失败,调用prepare_namespace 从mmcblk0p1安装根文件系统 - root=b301,是/dev/block/mmcblk0p1的16进制主设备号b3和从设备号01
- rootfs=ext2,文件系统类型
4. 启动开发板,会打印出如下信息:
VFS: Mounted root (ext2 filesystem) on device 179:1.
表示已经mount 根文件系统成功。
这一步可能会出现如下错误:
udevd[123]: unable to receive ctrl connection: Function not implementedudevd[123]: unable to receive ctrl connection: Function not implementedudevd[123]: unable to receive ctrl connection: Function not implementedudevd[123]: unable to receive ctrl connection: Function not implementedudevd[123]: unable to receive ctrl connection: Function not implementedudevd[123]: unable to receive ctrl connection: Function not implemented如果你出现了,那么执行第5步
5. 按链接给的patch, 修改内核
https://github.com/genesi/linux-legacy/commit/a84fac75f38de592e530a2f9f982d7aafec6c288
6. 编译内核并烧写到开发板上,重启系统后,不会再打印step4的错误
7. 支持LCD console,修改内核配置文件如下
@@ -1228,8 +1228,14 @@ CONFIG_FB_MXC_SYNC_PANEL=y # Console display driver support # # CONFIG_VGA_CONSOLE is not set+# CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y-# CONFIG_FRAMEBUFFER_CONSOLE is not set+CONFIG_FRAMEBUFFER_CONSOLE=y+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set+# CONFIG_FONTS is not set+CONFIG_FONT_8x8=y+CONFIG_FONT_8x16=y
重新编译内核,重启系统后,可在LCD看到ubuntu的登录console
8 支持serial console,我的开发板没有usbhost,不能接usb键盘,所以需要用serial console控制
- 在/etc/init.d增加文件/etc/init/ttymxc.conf
# console - getty## This service maintains a getty on console from the point the system is# started until it is shut down again.start on stopped rc RUNLEVEL=[2345] and container CONTAINER=lxcstop on runlevel [!2345]respawnexec /sbin/getty -L 115200 ttymxc0 vt102
- 修改rootfs的文件/etc/rc.local,如下
#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits.## By default this script does nothing.start ttymxc0exit 0
重新启动后,即可在串口得到控制台信息。
- 移植ubuntu core到Arm开发板
- 移植ubuntu core到Arm开发板
- 移植BlueZ到ARM开发板【转】
- 移植pcap库到ARM开发板
- Mplayer移植到Arm开发板
- 移植 sshd到arm开发板
- Mplayer移植到Arm开发板
- 移植SQLite3到ARM开发板
- 移植iptables命令到ARM开发板
- qwt移植到arm开发板
- qwt移植到arm开发板
- 移植madplay到arm开发板
- 移植qwt库到arm开发板!!!
- 移植SQLite到ARM开发板
- 移植Opencv到Arm开发板中
- Apache 2 移植到Arm开发板
- qt移植到arm开发板
- [转]gdb移植到arm开发板
- frameset编码问题
- 话说程序员的责任心
- C语言 - 本人编写的一个小白控制台程序,只是为了分享。
- [Python下载CSDN博客]1. 简单实现(二)
- 算法导论 5.2-1 5.2-2
- 移植ubuntu core到Arm开发板
- MT6572平台加入呼吸灯功能——编写APP Demo
- HDU 1787 欧拉函数
- 从存储和分析角度看大数据和云计算区别
- 事件驱动实现单线程实现并发 真正的高效并发
- Memcached windows 下安装与测试
- Android WebApp无法使用ScrollTo等方法控制滚动条位置
- Android应用开发之synchronized
- windows核心编程--线程高级