Ubuntu 16.04 (x64)树莓派B+(Raspberry Pi B+)源代码编译

树莓派上的操作


1.升级到最新版内核保证与下载的内核源码版本一致

2.升级完整后重启

3.查看内核版本

4.把最新版本的内核配置保存到.config中,以备以后编译内核使用

文件被存储到了/proc/config.gz中。

目前最新版本是4.4.12,因此下面的编译都是针对4.4.y这个分支进行的。

Debian/Ubuntu下编译


1.获取内核源代码

2,以下步骤时间很长,可以在睡觉前执行,并且可能需要重试几次才行,建议同时开三个Shell一起执行。

3.给予整个rpi-tools目录执行权限,默认可能没有执行权限

4.整个的rpi-linux的文件夹的所有者更改为当前用户,否则存在一定程度的编译问题,特别是代码从其他系统上拷贝过来的情况

5.设置编译器的路径

6.配置编译类型

如果提示是否增加新的驱动支持,默认全部选择否(输入大写的字母N,小写字母无效),否则会导致无法编译通过。

7.开始正式编译内核,最后的数字改成比你的CPU核心数量+1以提交多线程编译效率。

8.编译错误修正,如果提示如下错误

这个现象的原因是 git 在检出代码的时候,没有正确处理软连接,我们只需要重新处理一次即可。如下:

9.查看生成的内核镜像文件

生成的zImage就是我们需要的kernel.img

10.编译modules

安装编译好的内核

Ubuntu下面,SD卡会自动挂载,默认挂载到了/media/目录下面,如果是使用NOOBS安装的话,系统目录是固定的,执行如下命令拷贝到目标SD卡上面

参考链接


WD MyCloud下面Git提交(Push)失败 index-pack died of signal 9

WD MyCloud下面Git提交(Push)失败

如下图所示:
rpi_linux_error

根据网上的其他人的讨论,采用过

1.安装最新的git(2.14)无效)

2.限制git处理的文件的大小,超过大小则保持原始文件不变 (无效)

3.限制线程数量(无效)

4.限制pack的内存占用(无效)

5.限制pack的内存以及文件大小(无效)

6.使用上面的配置,重新在大内存电脑上重建索引提交(无效)

7.增大交换分区(提交过程变得巨慢,耗费了三天后提示失败,无效)

 

最后的解决方法,其实就是在足够内存的机器上面,提交到本机,然后使用scp作为一个文件夹同步到WDMyCloud中。

参考链接