第4章:基础开发工具安装:Git、Repo、Vim、SSH、Samba等工具的安装与配置

好,咱们继续往前走。上一章我们把Ubuntu系统装好了,现在桌面干干净净的,像个毛坯房。这一章我们要做的就是——往这个毛坯房里装「水电煤」。说白了,就是把这些开发必备的工具装好、配好。

我个人习惯是,拿到一台新机器或者新系统,第一件事就是把Git、Vim、SSH这几个家伙先请进来。为什么?因为后面所有的代码下载、编辑、远程调试,全都离不开它们。你想想看,没有Git你怎么拉代码?没有SSH你怎么连开发板?

4.1 Git:版本控制的基石

Git这东西,做Camera HAL开发的人几乎天天用。我见过不少新手,装完Git就以为完事了,结果一提交代码就报错——用户名和邮箱都没配。嗯,这里要注意,Git装完第一件事就是配身份信息。

安装很简单,一行命令搞定:

sudo apt update
sudo apt install git -y

装完之后,马上配一下全局信息:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱@example.com"

为什么要配这个?因为每次commit都会记录是谁提交的。我在项目中遇到过,团队里有人没配邮箱,结果代码审查的时候根本不知道是谁写的,查起来特别麻烦。

再配几个我常用的别名,能省不少事:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
小技巧: 我个人习惯把默认分支名改成main,因为现在很多仓库都从master迁移到main了。用 git config --global init.defaultBranch main 就能搞定。

4.2 Repo:Android源码管理利器

做Camera HAL开发,你迟早要跟Android源码打交道。Android源码有多大?几十个G,几百个Git仓库。你一个个去git clone?那得克隆到猴年马月去。

Repo就是Google专门为管理多仓库而生的工具。它本质上是一个Python脚本,帮你批量操作一堆Git仓库。

安装Repo前,先确保Python装好了:

python3 --version

如果没装,补上:

sudo apt install python3 -y

然后下载Repo脚本:

mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

记得把~/bin加到PATH里。编辑~/.bashrc,在末尾加上:

export PATH=$PATH:~/bin

然后source一下:

source ~/.bashrc

验证一下:

repo --version

看到版本号就说明装好了。

注意: 国内访问Google的服务器有时候不太稳定。我曾经遇到过repo下载到一半卡住的情况。如果遇到这个问题,可以试试用国内的镜像源,比如清华或者中科大的镜像。

4.3 Vim:终端里的编辑器之王

做嵌入式开发,很多时候你只有命令行界面。没有图形界面怎么办?用Vim。说实话,Vim的学习曲线确实有点陡,我刚开始用的时候也觉得别扭。但一旦习惯了,你会发现它的效率是真的高。

安装:

sudo apt install vim -y

装完我建议配一个简单的.vimrc,让编辑体验好一点:

vim ~/.vimrc

写入以下内容:

syntax on
set number
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent
set hlsearch

这几行的意思分别是:开启语法高亮、显示行号、Tab宽度设为4、自动缩进、搜索高亮。嗯,够用了。

我个人习惯再装一个插件管理器,比如Vundle或者vim-plug,方便以后扩展功能。不过新手可以先不折腾插件,先把基本操作练熟。

避坑指南: 我曾经在编辑一个关键配置文件时,不小心按了Ctrl+Z把Vim挂起了,然后忘了这回事,又开了一个终端去改同一个文件。结果两个进程互相冲突,文件内容乱掉了。记住:退出Vim用 :q,保存退出用 :wq,不要用Ctrl+Z!

4.4 SSH:远程连接的命脉

做Camera HAL开发,你的开发机可能是一台高性能服务器,或者你需要在电脑上远程连到开发板去调试。这时候SSH就是你的命脉。

安装SSH服务端和客户端:

sudo apt install openssh-server openssh-client -y

装完检查一下服务状态:

sudo systemctl status ssh

如果没启动,手动启动:

sudo systemctl start ssh
sudo systemctl enable ssh

为了安全,我建议修改一下SSH默认配置。编辑配置文件:

sudo vim /etc/ssh/sshd_config

找到这几行,改成这样:

Port 2222          # 改掉默认的22端口,减少被扫描的风险
PermitRootLogin no # 禁止root直接登录
PasswordAuthentication yes # 先用密码登录,后面配好密钥再关掉

改完重启服务:

sudo systemctl restart ssh

然后生成密钥对,方便以后免密登录:

ssh-keygen -t rsa -b 4096

一路回车就行。生成的公钥在~/.ssh/id_rsa.pub里,私钥在~/.ssh/id_rsa里。把公钥复制到你要登录的机器上:

ssh-copy-id -p 2222 用户名@目标IP
安全提醒: 私钥文件(id_rsa)一定要保护好,权限设为600。我曾经有个同事把私钥不小心传到公开仓库里了,结果第二天服务器就被入侵了。这种事真的不能马虎。

4.5 Samba:Windows和Linux之间的桥梁

很多做Camera HAL开发的同事,主力机是Windows,但开发环境在Linux上。怎么在两个系统之间方便地传文件?U盘拷来拷去?太原始了。Samba就是用来解决这个问题的。

安装Samba:

sudo apt install samba samba-common -y

装完配置共享目录。编辑配置文件:

sudo vim /etc/samba/smb.conf

在文件末尾添加:

[shared]
   comment = Shared Folder for Camera HAL Dev
   path = /home/你的用户名/shared
   browseable = yes
   read only = no
   guest ok = no
   valid users = 你的用户名

然后创建共享目录并设置权限:

mkdir ~/shared
chmod 755 ~/shared

添加Samba用户(注意,这个密码可以和系统登录密码不同):

sudo smbpasswd -a 你的用户名

重启Samba服务:

sudo systemctl restart smbd
sudo systemctl enable smbd

在Windows上,打开文件资源管理器,输入 \\Linux主机的IP\shared,输入刚才设置的用户名和密码,就能看到共享目录了。

个人经验: 我习惯在shared目录下再建几个子目录,比如code、tools、logs,分类存放。这样Windows和Linux之间来回倒文件特别方便,比用scp或者U盘快多了。

4.6 其他实用小工具

除了上面这几个核心工具,我还会顺手装一些平时用得上的小工具:

工具 用途 安装命令
tree 以树形结构显示目录 sudo apt install tree -y
htop 更直观的系统监控 sudo apt install htop -y
net-tools 网络诊断工具(ifconfig等) sudo apt install net-tools -y
curl 命令行下载工具 sudo apt install curl -y
build-essential 编译工具链(gcc、make等) sudo apt install build-essential -y

这些工具虽然小,但关键时刻能救命。比如有一次我排查网络问题,发现ifconfig没装,还得现去查命令安装,耽误了不少时间。

好了,这一章的内容就到这里。工具装好只是第一步,下一章我们会聊聊怎么配置开发环境,让这些工具真正为Camera HAL开发服务。到时候见。