♧新版本的Ubuntu所使用的vmware工具更改为 “open-vm-tools”,安装该工具方便之后的操作。
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
㈠首先安装基本工具:
sudo apt install net-tools
sudo apt-get install gcc
sudo apt-get install vim
sudo apt-get install make
sudo apt-get install make-guile
㈡安装Git工具:sudo apt install git
㈢安装vim
1)安装
“sudo apt-get install vim”
2)配置vim
“sudo vi /etc/vim/vimrc.local”
set nu “显示行号”
set tabstop=4 “制表符宽度”
set cindent “C/C++语言的自动缩进方式”
set shiftwidth=4 “C/C++语言的自动缩进宽度”
㈣配置arm开发环境。
更换ubuntu的更新源,要不升级更新太慢(推荐阿里云的源。)。
1)“sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup”
2)“sudo gedit /etc/apt/sources.list”
3)选择合适的源,把/etc/apt/sources.list里面的东西全部替换了
4)刷新列表“sudo apt-get update”
5)基本命令及环境的安装
安装命令tree
“sudo apt-get install tree”
安装chkconfig命令
“sudo apt-get install chkconfig”
安装patch命令
“sudo apt-get install patch”
安装基本的开发环境
“sudo apt-get install build-essential”
安装语法,词法分析器
“sudo apt-get install bison flex”
安装C函数库的man手册
“sudo apt-get install manpages-dev”
安装nfs服务
”sudo apt-get install nfs-kernel-server”
6)安装串口工具minicom
1、安装
“sudo apt-get install minicom”
2、配置
“sudo minicom -s”
主要是设置串口信息,按enter进入,将串口设备设置为/dev/ttyUSB0,设置波特率为115200,关流控,如下所示:
7)配置交叉编译链;
1、准备好交叉编译链的文件;
2、在 /usr/local的目录下新建一个文件夹 arm ;
3、修改环境变量;
修改/etc/profile文件,此文件对所有用户适用
sudo gedit /etc/profile
在最后加上export PATH=$PATH:/usr/local/arm/你的编译链的bin目录所在路径
保存,退出,然后刷新环境变量使其生效:
source /etc/profile
4、保存,退出,然后重启系统;
5、检查是否安装成功;
㈤编译、安装DNW下载工具。
1)安装所依赖的库:sudo apt-get install libusb-dev
2)编译:gcc -o dnw2 dnw2.c -lusb (以下为dnw2.c代码)
/* dnw2 linux main file. This depends on libusb.
*
* Author: Fox
* License: GPL
*
*/
#include
#include
#include
#include
#include
#include
#define QQ2440_SECBULK_IDVENDOR 0x5345
#define QQ2440_SECBULK_IDPRODUCT 0x1234
struct usb_dev_handle * open_port()
{
struct usb_bus *busses, *bus;
usb_init();
usb_find_busses();
usb_find_devices();
busses = usb_get_busses();
for(bus=busses;bus;bus=bus->next)
{
struct usb_device *dev;
for(dev=bus->devices;dev;dev=dev->next)
{
if( QQ2440_SECBULK_IDVENDOR==dev->descriptor.idVendor
&& QQ2440_SECBULK_IDPRODUCT==dev->descriptor.idProduct)
{
printf("Target usb device found!
");
struct usb_dev_handle *hdev = usb_open(dev);
if(!hdev)
{
perror("Cannot open device");
}
else
{
if(0!=usb_claim_interface(hdev, 0))
{
perror("Cannot claim interface");
usb_close(hdev);
hdev = NULL;
}
}
return hdev;
}
}
}
printf("Target usb device not found!
");
return NULL;
}
void usage()
{
printf("Usage: dnw2
");
}
unsigned char* prepare_write_buf(char *filename, unsigned int *len)
{
unsigned char *write_buf = NULL;
struct stat fs;
int fd = open(filename, O_RDONLY);
if(-1==fd)
{
perror("Cannot open file");
return NULL;
}
if(-1==fstat(fd, &fs))
{
perror("Cannot get file size");
goto error;
}
write_buf = (unsigned char*)malloc(fs.st_size+10);
if(NULL==write_buf)
{
perror("malloc failed");
goto error;
}
if(fs.st_size != read(fd, write_buf+8, fs.st_size))
{
perror("Reading file failed");
goto error;
}
printf("Filename : %s
", filename);
printf("Filesize : %d bytes
", fs.st_size);
*((u_int32_t*)write_buf) = 0x30000000; //download address
*((u_int32_t*)write_buf+1) = fs.st_size + 10; //download size;
*len = fs.st_size + 10;
return write_buf;
error:
if(fd!=-1) close(fd);
if(NULL!=write_buf) free(write_buf);
fs.st_size = 0;
return NULL;
}
int main(int argc, char *argv[])
{
if(2!=argc)
{
usage();
return 1;
}
struct usb_dev_handle *hdev = open_port();
if(!hdev)
{
return 1;
}
unsigned int len = 0;
unsigned char* write_buf = prepare_write_buf(argv[1], &len);
if(NULL==write_buf) return 1;
unsigned int remain = len;
unsigned int towrite;
printf("Writing data ...
");
while(remain)
{
towrite = remain>512 ? 512 : remain;
if(towrite != usb_bulk_write(hdev, 0x03, write_buf+(len-remain), towrite, 3000))
{
perror("usb_bulk_write failed");
break;
}
remain-=towrite;
printf("
%d% %d bytes ", (len-remain)*100/len, len-remain);
fflush(stdout);
}
if(0==remain) printf("Done!
");
return 0;
}
3)复制生成的dnw2到bin目录方便调用:sudo cp dnw2 /usr/local/bin
tip:赋值之后给权限 777 方便使用。
㈥安装Wine工具,-to:安装 source insight 3.5
☆相关依赖文件:
sudo apt-get install gcc-multilib g+±multilib
sudo apt-get install xserver-xorg-dev:i386 libfreetype6-dev:i386
sudo apt-get install flex
sudo apt-get install bison
1)进入官网下载wine压缩包:
https://www.winehq.org/
2)将下载好的wine压缩包解压后,进入该文件目录;
3)输入./configure进行配置;
4)配置完成后输入make进行编译;
5)执行make install进行安装。
6)安装完以后输入winecfg进入配置界面。
㈦安装输入法:Sogou输入法。
1)安装Fcitx输入法框架
sudo apt install fcitx
2)进入搜狗输入法官网下载linux版本的搜狗输入法安装包;
3)安装
sudo dpkg -i 安装包名
4)若出现错误安装失败,执行以下命令再重新安装。
sudo apt-get install -f
5)安装好之后进入系统设置将“Keyboard input method system:”切换为fcitx。
6)重启系统之后就可以进行输入法的切换了。
㈧安装sublime test3编辑器。(注:下载好的*. tar.bz2压缩包解压之后就可以使用。)
1)去官网下编辑器:
http://www.sublimetext.com/
2)导入License文件
打开Sublime菜单 -> help -> enter License (文件自行百度);
3)以前版本的sublime text需要汉化包进行汉化,更新后的可以通过localiza中文插件进行汉化。
4)使sublime text3可以输入中文。
1、保存下面的代码到文件sublime_imfix.c(位于~目录)
#include
void gtk_im_context_set_client_window (GtkIMContext *context,
GdkWindow *window)
{
GtkIMContextClass *klass;
g_return_if_fail (GTK_IS_IM_CONTEXT (context));
klass = GTK_IM_CONTEXT_GET_CLASS (context);
if (klass->set_client_window)
klass->set_client_window (context, window);
g_object_set_data(G_OBJECT(context),"window",window);
if(!GDK_IS_WINDOW (window))
return;
int width = gdk_window_get_width(window);
int height = gdk_window_get_height(window);
if(width != 0 && height !=0)
gtk_im_context_focus_in(context);
}
2、
将上一步的代码编译成共享库libsublime-imfix.so,命令
cd ~
gcc -shared -o
libsublime-imfix.so sublime_imfix.c
pkg-config --libs --cflags gtk+-2.0
-fPIC (需要安装依赖文件)
3、然后将libsublime-imfix.so拷贝到sublime_text所在文件夹
4、修改文件/usr/bin/sublime_text的内容(具体视个人安装路径变动)
sudo gedit /usr/bin/sublime_text
将
#!/bin/sh
exec /opt/sublime_text/sublime_text "$@"
修改为
#!/bin/sh
LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so exec /opt/sublime_text/sublime_text "$@"
此时,在命令中执行 subl 将可以使用搜狗for linux的中文输入(注:此处修改时候要给权限 777“” sublime_text才可以执行)。
5、 为了使用鼠标右键打开文件时能够使用中文输入,还需要修改文件sublime_text.desktop的内容(没有的话新建即可,具体视个人安装路径变动)。
注意:
修改时请注意双引号"",否则会导致不能打开带有空格文件名的文件。
此处仅修改了/usr/share/applications/sublime-text.desktop,但可以正常使用了。
opt/sublime_text/目录下的sublime-text.desktop可以修改,也可不修改。(注意:后来出现了问题还是要修改这里)。
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text 3
GenericName=Text Editor
Comment=Sophisticated text editor for code,markup and prose
Exec=bash -c "LD_PRELOAD=/home/lin/App/sublime_text_3/libsublime-imfix.so exec /home/lin/App/sublime_text_3/sublime_text %F"
Terminal=false
MimeType=text/plain;
Icon=/home/lin/App/sublime_text_3/Icon/256x256/sublime-text.png
Categories=TextEdior;Development;Utility;
StartupNotify=ture
Actions=Window;Document;
X-Desktop-File-Install-Version=0.22
[Desktop Action Window]
Name=New Window
Exec=bash -c "LD_PRELOAD=/home/lin/App/sublime_text_3/libsublime-imfix.so exec /home/lin/App/sublime_text_3/sublime_text -n"
OnlyShowIn=Unity
[Desktop Action Document]
Name=New Window
Exec=bash -c "LD_PRELOAD=/home/lin/App/sublime_text_3/libsublime-imfix.so exec /home/lin/App/sublime_text_3/sublime_text --command new_file"
OnlyShowIn=Unity
♒以上就可以从零构建出来一个嵌入式arm在ubuntu 18.04的开发环境。
㈨美化:
美化的话附上之前写的关于Ubuntu18.04美化的帖子工参考:
https://blog.csdn.net/qq_33475105/article/details/81240488