去年,我遇到了这种情况。 在没有sd卡的arm板上安装usb ext3 image,而且是windows
也可以使用linux,所以模仿恢复和磁盘安装,使用ADB,做成ramdisk方式,用u-boot选择
启动后,最近有空修改了菜单。 我现在也没有做这方面的东西。 放下也没用。 扔掉,有人可能会有用
代码放置位置:
git ://repo.or.cz/u-tools.git
可以从git clone下载
功能:
菜单上面有两个功能: USB安装、磁盘(sd卡)安装和后面有两个系统测试诊断子菜单,但现在为空
但是,也可以一起构建LTP。 添加到菜单后,可以进行LTP的测试
支持触摸选择菜单
本机Linux、安卓也可以使用。 但是,在linux上,必须添加usb adb驱动程序
用于在linux上烧写emb Qt的ext2 image
目录:
项目目录位于projects :中,其中u-tools目录下的SConstruct是第一个SCons编译文件
可以将新的linux app更改为ramdisk进行添加
u-tools :构建框架的所有组件。 其中,apps下面是安装所需的工具程序
例如,从busybox、e2fsprogs、andorid移动的磁盘安装、adbd等
tools :此目录包含SCons 0.96和集成交叉编译环境
编译:
修改tools目录下的:
. cross_compile文件指定arm工具chain的目录
2 .可以在代码根目录下编译utools.sh执行
但是,一些目录需要修改:
./tools/build.py verbose _ str=true machine=s5pc 100 project=u-tools toolchain=GNU _ arm _ eabi _ tolchainheller
将PROJECT_DIR修改为代码并解压缩后,中u-tools的目录
BUILD_DIR更改编译输出目录
命令成功执行后,将在BUILD_DIR指定目录的image目录下生成u-tools.img的ramdisk文件
这可以直接使用u-boot,所以不需要制作mkimg
配置:
1 .菜单修改为:
将更改添加到u-toolsappshellouimenu.h文件
2.inand的磁盘(实际上是分区) )。
在u-toolsappsUSB initdisk _ layout.c中的修改与在android disk layout conf中一样,
添加菜单时,我的测试用安卓进行了。 sample分为四个区,大致如下:
sructpart _ infomypart _ info [/*5*/]={
{.name='system ',
. flags=PART_ACTIVE_FLAG,
. type=PC_PART_TYPE_LINUX,
. len_kb=256*1024,//256 * 1024 *1024/1024
(,
{.name='恢复',
. type=PC_PART_TYPE_LINUX,
. len_kb=256*1024,//256 * 1024 *1024/1024
(,
{.name='cache ',
. type=PC_PART_TYPE_LINUX,
. len_kb=128*1024,//51 * 1024 *1024/1024
(,
{.name='data ',
. type=PC _ part _ type _ Linux/* PC _ part _ type _ dos * /,
#ifdef SOC_SIRF_PRIMA
. len_kb=-1,/*128 * 1024 *1024/1024*/
#else
. len_kb=1024*1024,/*128 * 1024 *1024/1024*/
#endif
(/)、
{.name='other ',
. type=PC_PART_TYPE_LINUX,
. len_kb=-1
() /
(;
struct disk_info mydisk_info={
. device='/dev/mmcblk0',
. scheme=PART_SCHEME_MBR,
. sect_size=512,
. num_lba=0,
. skip_lba=20000,
/*.part_lst=mypart_info,*/
. num_parts=/*5*/4
(;
其中,关于sirf和三星选择,主要相对于两个cpu的SD启动的方向不同,因此一个从SD之前开始
的sector开始,但三星从后面的sector开始。 在决定layout时请注意这一点。 目前,samsuang类不准确
不过,我们估算了之后需要保留多少sector才能放入原始图像
device=/dev/mmcblk0是定义要安装的磁盘的名称。 因为没有udev,所以请注意两个sd的情况。 这个我明白
其实只要更改固态硬盘就可以固定了
3 .路径设置:
已在u-toolsapps 磁盘安装程序 installer.h文件中设置
安装配置文件目录和写入image保存的目录
Image烧写:
ramdisk发生后显示菜单。 在touch中选择菜单,短按菜单进行移动,然后长按touch进行选择
菜单
1.sd install,根目录下的sample安装文件installer.conf
将计算机从Androidsystem.img(ext2格式) copy插入sd卡并开始安装
2 .选择位于2. usb install、windows或Linux Android SDK目录中的adb,然后执行installer.conf
推送和system.img文件并执行adb reboot时,将在目标端开始安装并显示状态。
现在的状态比较简单,可以自己添加
在linux上,使用根目录下的installer.sh脚本执行安装,然后插入usb
在linux上输入./installer.sh安装配置文件以安装image文件
也可以通过浏览android installer.conf配置文件来写入包含原始图像(如u-boot、kernel和)的内容
需要改善的地方:
1. ramdisk需要瘦身,目前约2M
添加vfat格式等操作
可以移动android recovery来安装mtd系列闪存(也可以通过ubi等实现)
4 .配置尚未自动化,从最后一个sector启动的布局配置尚不准确
5. ext4支持,e2fsprogs 1.4版,因此可以通过简单的修改支持ext4