分类 Linux 下的文章

参考 [SOLVED] qtcreator: examples are missing https://forums.gentoo.org/viewtopic-t-1092826-highlight-qtcreator.html

最近安装了 qt-creator,后发现了几个问题:

  1. help 里面只有 qt-creator 的内容,没有 qt 的内容。
  2. examples 是空的。

解决方法是:

  1. 安装 qt-docs,这样就有 qt 的帮助了。
  2. qt5 之后就没有 qt-demo 了,所以只能用新的方法。建立本地软件仓库来安装 非官方的 qt-examples。可以按照我上一篇随笔来做。 gentoo 建立本地软件库并安装软件 Custom repository https://www.cnblogs.com/ramlife/p/10425850.html

按照这个安装好了之后,重新打开 qt-creator ,就有 examples 了。

具体的 5.11.1 的 qt-examples ebuild 从这个连接下载: https://bugs.gentoo.org/669268 https://bugs.gentoo.org/attachment.cgi?id=552234

参考 Handbook:AMD64/Portage/CustomTree https://wiki.gentoo.org/wiki/Handbook:AMD64/Portage/CustomTree#Defining_a_custom_repository

Custom repository https://wiki.gentoo.org/wiki/Custom_repository

/etc/portage/repos.conf https://wiki.gentoo.org/wiki//etc/portage/repos.conf

首先建立软件库的文件夹

root #mkdir -p /usr/local/portage/{metadata,profiles}
root #chown -R portage:portage /usr/local/portage

然后起个便于识别的软件库名字,比如 localrepo:

root #echo 'localrepo' > /usr/local/portage/profiles/repo_name

然后设定这个软件库的主软件库是 gentoo,并且这个本地软件库不会自动更新。

vim /usr/local/portage/metadata/layout.conf
masters = gentoo
auto-sync = false

最后告诉系统软件库,有这么一个本地软件库。

vim /etc/portage/repos.conf/localrepo.conf
[localrepo]
location = /usr/local/portage

安装 repoman 来处理本地软件库。

emerge -v repoman

建立实际需要的软件的文件夹,并放入相应的 ebuild 文件,然后 使用 repoman 导入 manifest中,导入的时候会自动下载安装包到 /usr/portage/distfiles 里面。

mkdir -p /usr/local/portage/dev-qt/qt-examples
cp /home/用户名/Downloads/qt-examples-5.11.1.ebuild /usr/local/portage/dev-qt/qt-examples/
chown -R portage:portage /usr/local/portage
pushd /usr/local/portage/dev-qt/qt-examples
repoman manifest
popd

这时候就可以使用 emerge -pv qt-examples 来安装软件了。

也可以把刚才的简历文件夹,放入 ebuild 那一步做成脚本:

vim repoAdd.sh
#!/bin/sh
mkdir -p /usr/local/portage/$1/$2
cp $3 /usr/local/portage/$1/$2/
chown -R portage:portage /usr/local/portage
pushd /usr/local/portage/$1/$2
repoman manifest
popd

然后使用 这样的格式 (package_category package_name ebuild)

root #repoAdd app-dicts artha ~larry/artha-1.0.2.ebuild

如果使用 git 来管理软件库的话,可以使用下面的文件来管理:

vim /etc/portage/repos.conf/brother-overlay.conf
[brother-overlay]
location = /usr/local/overlay/brother-overlay
sync-type = git
sync-uri = https://github.com/stefan-langenmaier/brother-overlay.git
auto-sync = yes

Custom repository https://wiki.gentoo.org/wiki/Custom_repository 这个文档里面还有 如何升级本地仓库和交叉编译仓库 crossdev

查看具体某个命令来源于哪个软件包,使用 equery,比如说查找 lsusb 来源于哪个包,可以用

equery belongs lsusb

首先安装包含 lsusb 命令的 usbutils, emerge -v usbutils. 使用 lsusb后,可以查看到 ch340 的信息:

Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter

然后在内核中开启 USB-ACM, 位置在 Device Drivers -> USB support (USB_SUPPORT [=y]) -> Support for Host-side USB (USB [=m]) -> USB Modem (CDC ACM) support (USB_ACM), 重新编译后,在 /dev 中还是找不到 ttyusb0, 使用 dmesg 有错误提示:

[  172.647083] ch34x: Unknown symbol usb_serial_port_softint (err 0)
[  172.647136] ch34x: Unknown symbol usb_serial_deregister_drivers (err 0)
[  172.647150] ch34x: Unknown symbol usb_serial_register_drivers (err 0)

继续在内核中寻找,发现 usb 有以下的选项:

-->[m] usb serial convert support
    -->[*] usb generic serial driver
    -->[m] usb winchiphead ch341 single port serial driver
    -->[m] usb ftdi single port serial driver
    -->[m] usb prolific 2303 single port serial driver

重新编译内核和模块,多了 usbserial,ch341,ftdi_sio,pl2303,usb-serial-simple 这几个模块。 然后重启系统后,插入 usb,自动加载了 usbserial 和 ch341 模块,同时 /dev/ttyUSB0 也出来了。

初步判断,可能不需要 usb-acm 模块。 对于CH340,内核里面有相应的驱动,所以不需要从官网上面下载驱动CH341SER_LINUX,而且官网驱动直接编译有错误。github 上面修改后的驱动 juliagoda/CH341SER https://github.com/juliagoda/CH341SER CH341SER-master 也是不需要的,直接用内核驱动即可。

把CH340 编译为内核模块后,不需要其他设置,直接插入 usb,会自动加载 usbserial, ch341 内核模块。

串口调试工具下载了 minicom, putty, ckermit。minicom 中可以设置使用 ckermit 来进行 kermit 的传输。先按照网络上面的教程创建了 .kermrc 文件,增加内容:

set line /dev/ttyUSB0      //如果是串口就是ttyS0

set speed 115200

set carrier-watch off

set handshake none

set flow-control none

robust

set file type bin

set file name lit

set rec pack 1000

set send pack 1000

set window 5

然后输入 kermit 启动软件,提示 /var/lock: Permission denied, 没有相应的权限。

gpasswd -a $USER uucp
gpasswd -a $USER lock

如果提示有用户组不存在,那么使用 groupadd 命令来添加新的用户组,查看已有的用户组可以直接用

groupadd 用户组
cat /etc/group | grep 用户组

别忘了退出当前的终端重新进入,这样就有相应的权限了。

把 USB2SER 模块的 232 的RXD和TXD短接,进行回环测试。

使用 ckermit 发现只能使用 ASCII 进行传输,putty 也是只能用 ASCII 传输。只能试试 minicom,发现 minicom -H 只能输出16进制,输入还是不能16进制,只能重新寻找串口软件。 找到了16进制的串口软件是 cutecom 和 xgcom,gentoo 中直接直接安装 cutecom, emerge -v cutecom。

cutecom 中配置后,可以有时间戳,16进制和ASCII 同时显示,输出作为 log 文件,保存到相应的目录,但是只能在关闭软件后自动保存。还是比较希望能有软件按照时间把输入输出一起保存下来。不过暂时 cutecom 也够用了。

gentoo 中安装软件的时候 emerge 提示 USE 中有 语言包可选安装,使用 L10N 来设置,设置方法是在USE中使用 l10n_,比如说 l10n_zh_CN 来安装中文支持包。

图像方面的软件一般包括:查看图像,屏幕截图,图像修改。 查看图像简单的可以安装 feh,但是 feh 一般作为墙纸来用。稍微好一些的是 gqview. 屏幕截图可以用 screengrab,使用的时候可以选择全屏,窗口,区域等。 图像修改简单的可以安装 xpaint, 可以满足简单的使用。imagemagick 用于命令行图像转换等。类似于 photoshop 的重量级软件是 gimp.

安装 freemind 之后,感觉菜单上面的字体比较模糊,通过设置 tools --> preference 中的 defaults --> default fonts 里面 的 default font size, 把大小加大,还有 default font 修改为 Inconsolata。看上去就好一些。

如果需要导出 pdf,svg,需要修改 USE, 增加 pdf svg。增加这些的时候,需要手动从 oracle 下载文件。 https://download.oracle.com/otndocs/jcp/7542-jms-1.1-fr-doc-oth-JSpec/ 从这个连接,点同意许可,然后下载后的文件放到 /usr/portage/distfiles 里面,然后重新编译 freemind 即可。

虽然官网上面说修改字体可以在 "freemind.properties" 或者 "user.properties" 这两个文件里面增加,但是实际测试后发现,软件不使用这两个文件,软件只使用 auto.properties,在这个文件中可以通过:

#The default node font. This will only work if the font (TrueTypeFont) is available on the system
defaultfont = SansSerif
defaultfontstyle = 0
defaultfontsize = 12

来修改字体,字体可以选择 AR PL KaitiM GB,字体大小可以选择 20, 这样看起来效果不错。

可以通过控制台输入 DEBUG=1 freemind 启动软件,来收集一些信息。

转自: https://www.douban.com/note/688353496/

版权归作者所有,任何形式转载请联系作者。 作者:Steven(来自豆瓣) 来源:https://www.douban.com/note/688353496/

笔者用emacs已经好多年,一直在arch上开发。困扰了很长一段时间的中文问题,今天解决了,把解决的路径分享下,希望有帮助。

  1. 关于你用什么输入法,不管你是Ibus也好fcitx也好,应该是无所谓的。

  2. emacs不解决编码问题,必须要在启动的时候设置LC_CTYPE=zh_CN.utf8,当然这个设置对不对,你要看你的locale -a的结果(注意这里有的系统是zh_CN.UTF-8,有的是zh_CN.utf8,看locale -a的结果设置),得开进程前env LC_CTYPE=zh_CN.utf8,很多教程,我不做多赘述。不确定自己是否设置正确,可以/bin/emacs -Q,进去后ALT-X,getenv,LC_CTYPE看是否是zh_CN.utf8。

  3. 别忘了设置$HOME/.xprofile。

export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im=fcitx"

由于不同的桌面环境,比如用i3的朋友就需要设置到.xinitrc里。

这一步是为了让你的GTK和QT应用能直接呼出fcitx,这一步不设置啥都出不来。

  1. 字体问题:也可以直接看这个设置:https://wiki.archlinux.org/index.php/Fcitx_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

Emacs 默认 fontset 会使用 "----r-normal--14-------" 字体 (terminus, 75dpi 等等,可以通过xlsfonts命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.

  1. 恭喜你基本快成功了,如果这时候你还是呼不出fcitx或者ibus输入法。就可能跟你的桌面环境或者字体有关系了。 笔者用的fcitx,先说下fctix,用fcitx-diagnose诊断下是否有问题,emacs26是依赖gtk3的,只要gtk3设置了,就基本没问题了。那么还是呼出不了fcitx是怎么回事,这个论坛给了我答案,我系统的字体设置设置出了问题。可以根据这里的设置来解决这个问题:https://wiki.archlinux.org/index.php/Fonts#Installation

  2. 设置你系统载入的字体配置(这部分看上面链接即可)

/etc/fonts/local.conf

里面加入fallback的字体配置

  1. 确认你的fcitx进程存在。可以通过fcitx-diagnose来查看有没有问题,其实emacs也不一定非要设置编码格式,我取消了zh_CN.UTF8也能呼出输入法,这个目前还不太明白。

Done!,重启电脑,/bin/emacs -Q,测试下能不能呼出输入法,能呼出输入法中文写不到emacs一定是LC_CTYPE或者字体问题。不能呼出就是桌面环境问题或者.xprofile的问题。弄个空的emacs测试,有可能你的一些自己配置的lisp搞乱了环境,笔者就因为是fork的别人的emacs, emacs -Q 跑的没问题,后来排除了问题。