ubuntu 20.04 添加桥接网络

之前的版本添加桥接比较麻烦,网络还经常会被断开。20.04的版本有一种简单的方法添加网络。 在/etc/netplan目录中添加配置文件,重启后就自动添加好了。 比如

# This is the network config written by 'subiquity'
network:
  renderer: networkd
  ethernets:
    enp2s0:  #物理网卡的接口
      dhcp4: no  #桥接网络自动获取ip地址了,所以这个可以为NO,这样桥接的br0可以使用原来的物理网卡的接口的ip地址
  version: 2
  bridges:
    br0: #虚拟桥接网络的接口
      dhcp4: yes
      interfaces:
        - enp2s0 #桥接到的物理网卡的接口

上面的配置是动态IP的,我喜欢在路由上绑定mac地址的方式配置ip

ubuntu 15.10 使用QQ

windows下唯一放不下的可能就是QQ了,没办法,在国内谈事情离了这个很多人都不知道怎么联系了。

今天在安装完ubuntu 15.10之后,想看看这一方面的信息,同时使用kvm装了个win7的系统,以便运行qq.

然后发现深度linux这边在弄wine-qq,而优麒麟(ubuntu所谓的中国官方版)竟然放出了一个可供直接安装的wine-qq版本, 抱着试一试的心态,反正也没指望能用,结果发现竟然可以基本使用

我的要求不高,基本的聊天,发送接受文件即可。

先放链接:http://www.ubuntukylin.com/application/show.php?lang=cn&id=279

我这边测试的使用结果:

  1. 登陆的时候,密码无法用键盘输入,只能用屏幕键盘输入
  2. 多个帐号可以使用,但最小化之后,双击任务栏的企鹅小图标的话,只有最后一个最小化的可以点击出来(在我这边显示的是最左边的第一个),

其他的要响应点击的话,必须先关闭退出之前的那个。也可能是我姿势不对

  1. 文件接收可以使用
  2. 来消息后有通知声音
  3. 视频的话,可以接通,但没有视频图像,这一点也可能是因为我是在同一台电脑上测试的原因,但这一点对我不是很重要
  4. 有时候会莫名退出,我第一次的时候退出了,之后测试的几次没有碰到

从qq的版本来看,使用的是win-qq国际版2012制作的。不管如何,总算是能用

e9卡片式电脑运行ubuntu 14.04.2

去年这个时候买了个e9卡片式电脑(主板资料), 主要是解决raspberry pi的性能太弱的问题,同 时看中了支持sata硬盘。我主要是用它来做服务器使用的。自带的ubuntu 12.04也基本满足 要求。

后来,我承载的服务越来越多,就想通过docker来简单部署了,但docker需要的内核至少是 3.10+的。这个板子的内核是3.0.35的,差好多。试着拉了一下代码。发现内核的arm版本在 这期间进行了大改动。增加了dts的方式。对于dts,我完全不了解。也不明白,据说是设计 板子用的。总之,学习需要很长的时间,对于我这种非设计的程序员而言,就像美术于我一 样。于是,我买了个pipo的x7,x86 64位架构,安装了个ubuntu的系统。就作为我的主服务 器了。而且,自动构建也是在这个里面通过docker来部署的。

这个e9卡片电脑就变成了我的心结了。时不时的找找资料,泡泡论坛,看是否有相关的进展。 后来,在论坛上看到有人说自己移植了3.10内核(帖子位置 )了。于是,就想在此基础上进行进一 步的开发。

代码我基本上就是从帖子中的地址(代码位置 )拖下来的。先测试编译。帖子中的问题也碰到过。 主要是卡在start kernel之后就没有了,这个问题很纠结。第一次碰到的时候也是这种状况, 完全不明白头绪。不过这次开发就相对有经验了。我在其他地方看到了相关的信息资 料(unbriking u-boot启动)当然,我主要是使用linux开发的,因此,使用 imx_usb_loader工具(imx_usb_loader) 即可。

简单而言,将板子设置为download模式,然后,在download的时候,通过usb_loader工具将 u-boot上传到板子中,并运行,这个要比默认用mfg的那个工具方便很多。要知道,使用那 个工具需要反复的跳线,长时间的烧。而且,必须所有的一起烧,苦不堪言啊。

总之,通过usb_loader工具,我可以单独测试u-boot了,但u-boot我也不太会用,不过,这 个就好用些了,想办法设置为网络启动,然后运行下,看到有请求网络上的内核,可以加载 相关文件,然后启动加载远程的rootfs了。这简直就是个无盘工作站啊。

默认的启动的是mmc,然后是netboot,我记得是这样子的。但我的mmc不想格式话,觉得还 是emmc比较方便,分析代码中的u-boot的设置的环境信息,以及老的相关信息脚本。手动设 置运行。想了一个方案:

将自己定制的内核的zImage和dtb文件放到emmc的root分区的boot目录中,然后启动的时候, 加载这个文件,如果要升级内核的话,可以直接更新这些文件即可,也可以弄多份。

原因在于,mfg的那个工具,必须要有uImage文件,而我们编译出来的是zImage,虽然也可生 成uImage,但dtb文件总要有个地方存放。而我又不想弄的太复杂,于是还是简单些好。这 个就造成了在烧的时候使用一个从来不会用到的文件。

先上最终的结果: rootfs:(下载)这个文件在烧的时候修改下名称,我用的是 http://cdimage.ubuntu.com/cdimage/ubuntu-core/releases/14.04.1/release 中的ubuntu14.04.2 的,非常小,只有 不到60MB,所有定制完成也才66MB,当然,里面也什么都不包含(甚至不包含 openssh-server),不过启动了之后能启动网络就一切OK了。这个里面已经包含了内核和相 关的模块,至少可以启动docker。我主要是用来玩docker的。

u-boot.bin: 下载 这个是定制的编译的。我对启动的变量进行了修改,以便可以启动emmc中的系 统以及更好的显示到液晶屏幕上,默认分辨率:1280×800 对于uImage文件,你可以使用老的,反正我们启动的时候也不会使用到这个部分。 其他的操作可以按照e9官方的教程进行烧制,正常情况下,启动完应该就是3.10.17的 ubuntu 14.04.2系统了。

以下是枯燥的技术部分:

继续阅读e9卡片式电脑运行ubuntu 14.04.2

emacs在ubuntu中右键打开选项

这个是从网上抄来的,只是方便在ubuntu下使用emacs.

emacs在ubuntu下每次都打开一个新的实例。为了加快速度,配置了server模式,但这个和 ubuntu里的不兼容了。

在所有文件夹中搜索”emacs*.desktop”,会搜索到一批文件,打开自己使用的对应的文件, 修改里面的一行:

Exec=emacsxx %F

Exec=emacsclient –alternate-editor emacs %F

这样就会在同一个emacs中打开所有文件而不同重新加载了。如果没有启用server模式则是 在每个emacs中打开,如果这个配置在ubuntu发行版中为默认配置该有多好阿。

e9卡片式电脑编译关于浮点错误解决方案

我在e9卡片电脑上编译erlang_js,出现了”uses VFP register arguments”的错误

大致内容如下:

ld: error: Linux_All_OPT.OBJ/jsinterp.o uses VFP register arguments, Linux_A    ll_OPT.OBJ/libjs.so does not
ld: failed to merge target specific data of file Linux_All_OPT.OBJ/jsinterp.    o

解决过程

查看gcc的编译器自身的编译选项

gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabi/4.6/lto-wrapper
目标:arm-linux-gnueabi
配置为:../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.6.3-1ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --enable-multilib --disable-sjlj-exceptions --with-arch=armv7-a --with-float=softfp --with-fpu=vfpv3-d16 --with-mode=thumb --disable-werror --enable-checking=release --build=arm-linux-gnueabi --host=arm-linux-gnueabi --target=arm-linux-gnueabi
线程模型:posix
gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

查看gcc支持的库

 gcc -print-multi-lib
.;
.;@mfloat-abi=softfp
hf;@mfloat-abi=hard

解决方法

修改CFLAGS选项进行编译(记得先make clean,对于一些应用,可能还需要重新configure):

CFLAGS="--with-float=softfp --with-fpu=vfpv3-d16 --with-arch=armv7-a" make