Tangaoo an embedded software engineer

开发环境搭建

2022-08-07
tangoo

为了避免搭建环境时候老是google重复的问题,在这里记录一下环境搭建的细枝末节。

1. 安装google输入法

  • sudo apt-get install fcitx-googlepinyin
  • 搜索栏 搜language support,安装完全语言支持。
  • 键盘输入法系统,选择fcitx,重启。
  • 单击在右上角键盘图标,添加谷歌拼音输入法,就ok。
  • 文本框可能有分辨率问题,重新启动一次键盘输入法系统ok。

2. 安装chromium插件

  • 高版本chrom浏览器不支持直接拖拽。
  • 先把插件重命令成.tar,然后解压成文件夹。
  • 进入chrome://extensions/,然后在拖拽,即ok。

3. 启用点击左边dock图表最小化

$ gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

4. markdown语法

5. ubuntu安装、卸载程序

  • 安装
$ dpkg -i xxx
  • 卸载
$ apt-get remove   ##删除已安装的软件包(保留配置文件),不会删除依赖软件包,保留配置文件;
   
$ apt-get purge    ##删除已安装的软件包(不保留配置文件),删除软件包,同时删除相应依赖软件包;
   
$ apt-get autoremove ##删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件;

$ apt-get clean    ##删除已经安装过的的软件安装包;即自动将`/var/cache/apt/archives/`下的所有deb删掉,相当于清理下载的软件安装包;

6. rar文件解压

  • 默认无法解压rar,需要rar工具

  • rar压缩工具
    $ sudo apt-get install rar
    
  • rar解压工具
    $ sudo apt-get install unrar
    
  • 压缩
    $ rar a FileName.rar DirName
    
  • 解压
    $ rar x FileName.rar
    

7. 安装oh-my-zsh

  • 安装 zsh sudo apt install zsh
  • 从改默认shell,重启 chsh -s /bin/zsh
  • 下载oh-my-zsh脚本,并执行
    $ wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh
    $ sh install.sh
    
  • 更改zsh配置文件,主题 ZSH_THEME="robbyrussell"
  • 增加插件 pplugins=(git pip z history-substring-search extract vi-mode)s

8. 安装monaco字体

直接在仓库下载安装。

9. happypeter网站更改

happypeter网站

10. 中文文件夹改英文

使用 LC_ALL=C xdg-user-dirs-update –force 命令可以强制创建英语目录

11. ssh

  • ssh是网上两台计算机互联的一套协议。

  • 默认端口22.

  • 安装
    sudo apt-get update  # 更新 apt-get 工具
    sudo apt-get install openssh-server
    sudo apt-get install openssh-client 	
    
  • 修改配置文件sudo vim /etc/ssh/sshd_config
    Port 22                       # 默认22端口,如果有端口占用可以自己修改
    PermitRootLogin yes           # 如果配置文件中没有这行内容,需要手动添加
    PasswordAuthentication yes    # 密码验证登录
    
  • 重启服务 sudo service ssh start
  • 登陆 ssh name@ip
  • 上传下载 scp -r tao@192.168.31.205:~/Desktop/test.txt ./ (重远端下载文件到本地,上传反之,类似cp操作)

12. ack 字符串查找(擅长源代码查找)

  • install
    sudo aptitude install ack-grep
    sudo ln -s `which ack-grep` /bin/ack
    
  • ack默认忽略许多文件格式,下面命令查看具体哪些。
    ack --help-types|less
    
  • example
    ack hello          #查找hello字符串
    ack -a hello       #取消默认忽略
    ack --js hello     #查找某特定语言
    ack --nojs hello   #排除某特定语言
    

13. lsusb 查看usb相关属性(device id …)

14. ubuntu 添加环境变量

  • 在profile文件中追加环境变量
    sudo vim /etc/profile
    
  • 插入环境变量(追加在profile文件末尾)
    export PATH=$PATH:/opt/EmbedSky/4.3.3/bin
    
  • 立即生效profile
    source profile
    

15. Embedded device setting time

  • set system time
    date -s "20210-04-04 18:00:00"
    
  • write time back RTC(hardware)
    hwclock -w
    
  • recover system for RTC(hardware)
    hwclock -s
    

16. Cross Compiler 交叉编译工具

  • 获取途径 ?

17. Linux kernel移植

  • 获取官方源码 https://www.kernel.org/

  • 配置编译环境
    • 交叉编译工具
    • arch 选择
  • 选择mach芯片(例如 arch/arm/mach-s3c2440/mach-smdk2440.c)

  • 改开发版对应时钟频率
    • 例如 TQ2440开发板对应修改文件在 arch/arm/mach-s3c2440/mach-smdk2440.c
  • make menuconfig
    • 选择最加载接近模版 (arch/arm/configs/)
    • 修改相关配置,保存
  • 配置文件另存为 .config

  • 修改机器码
    • 与uboot对应,在目录 arch/arm/tools/mach-types
  • 编译内核
    make zImage
    

18. 编译驱动(要在 kernel 内部实现驱动编译)

  • 在内核相关目录添加驱动源码(例如 drives/char)

  • 改同级目录下 Kcongfig 文件,为了能在 make menuconfig 工具中显示

  • 改同级目录下 Makefile 文件

  • make menuconfig 配置添加该驱动
    • M 表示编译进模块,或直接编译进来内核,或不编译
  • 编译
    • make SUBDIR=drives/char/ modules
  • 装载与卸载
    • insmod
    • rmmod

19. TFTP设置(宿主机与开发版传数据)

  • 安装软件
    $ sudo apt install tftpd-hpa
    
  • 配置
    $ sudo vim /etc/default/tftpd-hpa
    
    • 改tftp路径
    • OPTIONS 增加 –create
  • 重启tftp
    $ sudo systemctl restart tftpd-hpa
    
  • 详见链接 https://linuxhint.com/install_tftp_server_ubuntu/

20. 内核编译问题

  • 需要用root命令编译
    • sudo su 然后在编译。应该有其他方法?

21. nfs

$ sudo apt install nfs-kernel-server
  • config
$ sudo mkdir /var/nfs/general -p
$ sudo chown nobody:nogroup /var/nfs/general
  • change /etc/exports file
  • add /var/nfs/general client_ip(rw,sync,no_subtree_check) to the file end
  • restart
$ sudo systemctl restart nfs-kernel-server
  • try mount from Embeded board side(client)
$ mount –t nfs 192.168.1.8:/var/nfs/general /mnt –o nolock
$ cd /mnt
$ ls

Comments

Content