建立aosp次级镜像

经常编译aosp的时候发现每次repo init -b切换分支的时候,都要sync很久,浪费的时间加起来都够给长者续无数秒了,反正硬盘也很大,于是决定建立一个本地的aosp mirror,增加一下工作效率,也给周围的小伙伴提供一下方便。

环境需要:ubuntu 16.04,一块大的硬盘(140G以上)。

第一步:下载aosp mirror

官方有教程,先选择好用的源(这里推荐google、清华、中科大的源)

经过漫长的等待,1MB/s的话,需要48小时左右的时间,下载过后目录为:

第二步:从本地的mirror里同步分支

如果是创建新的aosp仓库,执行

之后repo sync就会使用本地的mirror。

如果是从其他源想切换到本地的源,需要修改2个文件。

这里fetch的值一般不重要,因为我们根本不会向repo提交代码。

第三步:使用局域网内的mirror

客户端的方法一样,只修改repo里关于url的设置即可,同样也是那两个文件。

这里讲一下服务器端的设置。

请一定要严格按照下面这句话,路径末尾的”/”不可多也不可少,不然会造成在客户端尝试连接时git fetch whitelist的问题。

默认占用的是9418。

第四步:权限设置。

建立一个新的用户,用来存放driver的binary。这个目录用775的权限,里面文件也给775的权限,防止有人手残把这些文件删掉。。。

 

额外:添加硬盘后导致服务器无法开机的一种可能情况。

给服务器里复制次级镜像时候,新买了块硬盘,加上原先的两块一共有三块,开机说配置错误,让我输入root密码修改配置后重启,猜原因猜了比较久。

表现:一旦接入硬盘就会导致无法开机,拔掉却可以开机,整个过程已经被识别成功,开机后插上硬盘可以进行mount和format等操作。

折腾了比较久,修复磁盘的方法试过也没用,偶尔发现在将/etc/fstab的额外配置留空时发现可以开机了(虽然会少一块硬盘)所以结论是/etc/fstab被前人写坏了。。。

/etc/fstab的作用是开机前对设备进行挂载,每行表示一个设备,第一个参数用来标记硬盘的唯一性,一般用UUID做标记,也可以用/dev/sda1等做标记,后者也经常被提到说强烈不建议这么做。前人写的是/dev/sdc1,在我们插上硬盘后,这个数字是会变的,刚好变到我们新加的硬盘上,而测试过程中硬盘本身没有分区,或者分区的格式也不是ext3,就导致挂载失败拒绝开机。

尴尬,前人的锅我也的背了,所以按照规范将文件里的/dev/sdc1替换为UUID后,终于可以正常开机。之后就可以多人共享aosp,体验极速内网啦。

参考链接:

https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/

https://lug.ustc.edu.cn/wiki/mirrors/help/aosp/

https://source.android.com/source/downloading/

 


=============================================================
随着访客的增多,LeadroyaL在本站流量的开支越来越多了,曾经1元能用1个月,现在1元只能用3天。如果觉得本文帮到了你,希望能够为服务器的流量稍微打赏一点,谢谢!

《建立aosp次级镜像》有3个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code