Got a Acer ConceptD 7 Ezel CC715-71P to install Linux and test touch screen on it. After booting from Ubuntu 23.10 USB, the installer told me that I need to deal with the Intel RST settings. Reboot, F2, enter the BIOS setup, but I didn’t find any option related.
Tag Archives: Linux
Play Linux vms on M3 Max
Yeah, got a new work laptop recently, MacBook Pro 16″, M3 Max/36GB/1TB. But Asahi Linux is not ready for M3 yet.
And I have VMware Fusion, then I tried a few linux distributions with arm64/aarch64 support.
How to run ARM64(aarch64) Qt auto tests on x86_64
Assume you have a host(x86_64) build of qtbase, like following:
1 2 3 4 5 6 7 |
cd ~/qt git clone git://code.qt.io/qt/qtbase.git mkdir qtbase-build cd qtbase-build ../qtbase/configure -developer-build -opensource -confirm-license -nomake examples -nomake tests -verbose cmake --build . --parallel -j8 |
Some extra work to setup system:
Build Qt dev/5.15/5.12/4.8 on Ubuntu 23.10
Install Ubuntu 23.10, for me, it’s an VM via VMware Fusion 13.5.0 on MacBook Pro 2019.
Install some needed packages,
1 2 3 4 5 6 7 8 |
sudo apt install -y zsh build-essential perl python3 git sudo snap install cmake --classic sudo apt install ninja-build sudo apt-get build-dep qtbase-opensource-src sudo apt-get install libxcb-xinerama0-dev sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev sudo apt-get install libdbus-1-dev libglib2.0-dev |
Default gcc/g++ is 13.2.0.
Add following in env:
1 2 3 |
export MAKEFLAGS='--jobs=8' export CMAKE_GENERATOR=Ninja |
Note for fixing network setup in vm
I normally run several linux vms in VMware Fusion on MacBook Pro 2019. Recently during a trip, the system stuck. I forced a shutdown and reboot. Then I lost network in a Ubuntu 23.04 vm, there is no ethernet interfaces in Network section in Settings(GNOME), and there is no related icon in top-right corner.
I googled a few times, I found one article helped me. Something is wrong in this file:
1 2 3 4 5 6 |
sudo cat /var/lib/NetworkManager/NetworkManager.state [main] NetworkingEnabled=false WirelessEnabled=true WWANEnabled=true |
Anyway, I just followed the steps in the article, it works for me.
1 2 3 4 |
sudo service NetworkManager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service NetworkManager start |
Install Vim 9.0 and enable Qml syntax
(Ubuntu 22.04/23.04)
1 2 3 |
$ sudo add-apt-repository ppa:jonathonf/vim $ sudo apt install vim |
Reference: How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions
Configure vim to enable Qml syntax
1 2 3 4 5 6 7 8 9 |
$ cd ~ $ mkdir .vim $ cd .vim $ mkdir ftplugin indent syntax $ wget -O ftplugin/qml.vim https://raw.githubusercontent.com/peterhoeg/vim-qml/master/ftplugin/qml.vim $ wget -O indent/qml.vim https://raw.githubusercontent.com/peterhoeg/vim-qml/master/indent/qml.vim $ wget -O syntax/qml.vim https://raw.githubusercontent.com/peterhoeg/vim-qml/master/syntax/qml.vim $ vi ~/.vimrc |
Add the following line:
1 2 |
autocmd BufRead,BufNewFile *.qml setfiletype qml |
Configure nvim and nvim-qt
1 2 3 4 5 |
$ cd ~/.config $ ln -s ~/.vim ./nvim $ cd nvim $ ln -s ~/.vimrc ./init.vim |
Reference: How to share config between Vim and Neovim
Help to test KDE/Plasma 6 Wayland
KDE developers are working hard on Plasma 6 Wayland. See also KDE Plasma 6 Development Progressing Well, Plasma 6 Beta Possible In A Few Months and KDE Plasma 6 Wayland Session: “It’s Been Working Great!”.
For example, you can install Neon Developer Edition via KDE neon: Live Images. After installation, you can upgrade it to KDE/Plasma 6,
sudo apt update
sudo apt install neon-settings-2
sudo apt full-upgrade
See also Neon Unstable now using Qt 6 Builds of Frameworks and Plasma.
If you find any bug, please help to report to KDE bugtracker. Here is my first ticket recently.
Sway on VMware Fusion
With Manjaro(Arch based, Xfce edition), installed as a vm in VMware Fusion on macOS. You can install sway or sway-git.
sudo pacman -S sway
or
git clone https://aur.archlinux.org/wlroots-git.git
cd wlroots-git
makepkg -si
git clone https://aur.archlinux.org/swaybg-git.git
cd swaybg-git
makepkg -si
git clone https://aur.archlinux.org/sway-git.git
cd sway-git
makepkg -si
If you want to use gnome-terminal,
sudo pacman -S gnome-terminal
Modify /etc/sway/config , the line
set $term foot
to
set $term gnome-terminal
Modify /usr/share/wayland-sessions/sway.desktop , the line
Exec=sway
to
Exec=env WLR_NO_HARDWARE_CURSORS=1 /usr/bin/sway
If you want to restart display manager to login again,
sudo systemctl restart lightdm
Reference
系统升级备忘
这个VPS当时安装的是Ubuntu 15.04,非LTS。最近发现很多软件没法装最新版本。想升级吧,系统提示的do-release-upgrade还不行。搜了搜,发现得走这样的路径:15.04->15.10->16.04 LTS。
1 2 3 4 5 |
sudo apt-get update sudo apt-get upgrade sudo do-release-upgrade -d sudo do-release-upgrade |
然后发现系统提示php的包不需要了,就删掉了… 然后我的wordpress就起不来了。继续搜,原来出了php7。
1 2 3 4 5 6 |
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0 sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart sudo update-alternatives --set php /usr/bin/php5.6 |
备忘一下。
参考:
Distributed Compilation the build of Qt
Qt is a huge project, especially like the module, QtWebKit. If you happen to be in a computer farm, it is very useful to use distributed complation to speed up the build of Qt.
Here I suggest to use icecream on Linux and Mac OS X, and IncrediBuild on Windows(at least for Microsoft’s Visual Studio compilers). About IncrediBuild, more details perhaps will be updated in the future. See also qtrepotools: publish ibmake.bat, incredibuild xge wrapper for make/buildconsole.
Today, this blog is more about icecc/icecream.
Preparation
Linux
icecream is maintained by the SUSE people. Then there are less issues in OpenSUSE than in Ubuntu. But Ubuntu is more popular one. I just use Ubuntu as example here.
- Install your compiler, like gcc and clang.
- Install icecc and icemon(optional). icemon is the monitor of icecream build, better to check it when you setup the enviroments. It’s an GUI application based on Qt 4.8. Note: you need to install 0.9.8~git2012121601-0ubuntu2 and later version for icecc. More details in “icecc” package in Ubuntu.
1 2 |
sudo apt-get install icecc sudo apt-get install icemon (optional) |
- For clang users, if you want to make icecream compiler package, better to do:
- 13.04:
$ sudo ln -s /usr/include/clang/3.2/include /usr/lib/clang/3.2/
- 12.04:
$ sudo ln -s /usr/include/clang /usr/lib/
- 13.04:
- Create compiler package: please do it. Here is the example for 13.04:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ gcc --version gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3 $ /usr/lib/icecc/icecc-create-env --gcc /usr/bin/gcc /usr/bin/g++ ... creating 0b6089afb59bbcef327c8ec59b021132.tar.gz $ mv 0b6089afb59bbcef327c8ec59b021132.tar.gz ~/icecc-package-gcc-4.7.3.tar.gz $ clang --version Ubuntu clang version 3.2-1~exp9ubuntu1 (tags/RELEASE_32/final) (based on LLVM 3.2) $ /usr/lib/icecc/icecc-create-env --clang /usr/bin/clang /usr/lib/icecc/compilerwrapper … creating bbfeb5eb17d851d04a17bed5f9f1f621.tar.gz $ mv bbfeb5eb17d851d04a17bed5f9f1f621.tar.gz ~/icecc-package-clang-3.2-1.tar.gz |
- Enviroment settings before build:
1 2 3 4 5 6 7 8 9 |
$ cat .icecc_rc-gcc export PATH=/usr/lib/icecc/bin:$PATH export ICECC_VERSION=/home/liangqi/icecc-package-gcc-4.7.3.tar.gz alias make="make -j48" $ cat .icecc_rc-clang export PATH=/usr/lib/icecc/bin:$PATH export ICECC_VERSION=/home/liangqi/icecc-package-clang-3.2-1.tar.gz alias make="make -j48" |
- Run icecc-scheduler in one of your Ubuntus:
- Edit
/etc/default/icecc
, setSTART_ICECC_SCHEDULER="true"
.
- Edit
- Start icecc service:
sudo /etc/init.d/icecc start
, icecc-scheduler service also could be started with this. Not suggest to run multiple icecc-scheduler in same network with default values, you could edit/etc/icecc/icecc.conf
with more options. - Stop icecc service(optional):
sudo /etc/init.d/icecc stop
Mac OS X
- Create a ‘qt’ user. Open System Preferences -> Users & Groups -> “+” under the list of users (you might need to click the lock icon first and type in your password), add a user “qt” with your standard password.
- Install HomeBrew
1 |
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" |
- Install XCode and command line tools.
- Install icecc and icemon(optional).
- Copy icecream.rb and icemon.rb to
/usr/local/Library/Formula/
. brew install icecream icemon
- Copy icecream.rb and icemon.rb to
- Create compiler package: please do it. Here is the example for 10.8:
1 2 3 4 5 6 7 8 |
$ clang --version Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.4.0 Thread model: posix $ /usr/local/opt/icecream/libexec/icecc/icecc-create-env --clang /usr/bin/clang /usr/local/opt/icecream/libexec/icecc/compilerwrapper … creating bbfeb5eb17d851d04a17bed5f9f1f621.tar.gz $ mv bbfeb5eb17d851d04a17bed5f9f1f621.tar.gz ~/icecc-package-clang-3.2-svn.tar.gz |
- Enviroment settings before build: (Note: looks like it doesn’t work well with a compiler package. 2013-06-19)
1 2 3 4 |
$ cat .icecc_rc export PATH=/usr/local/opt/icecream/libexec/icecc/bin:$PATH #export ICECC_VERSION=/Users/liangqi/icecc-package-clang-3.2-svn.tar.gz alias make="make -j48 CC=clang CXX=clang++" |
- Copy com.github.iceccd.plist into into
/Library/LaunchDaemons
. sudo chown root /Library/LaunchDaemons/com.github.iceccd.plist
- Start icecc service:
sudo launchctl load /Library/LaunchDaemons/com.github.iceccd.plist
- Stop icecc service(optional):
sudo launchctl unload /Library/LaunchDaemons/com.github.iceccd.plist
Building Qt
Normally just do source ~/.icecc_rc
, configure
and make
.
- For clang build(both Linux and Mac OS X), please keep in mind to use
-no-pch
whenconfigure
. - For Qt4 build, the
-arch
argument that Qt 4 passes to the compiler confuses icecream. So for now, if you use Qt4, you need to patch your mkspec to not add that (if you build for your local architecture only), eg. inmkspecs/common/gcc-base-macx.conf
.(Note: looks like it’s only on Mac OS X, I haven’t tried it yet.)
Known Issues
- Using icecream currently screws up debug information for all object files that we compiled remotely!(Mac OS X only)