Skip to main content

the avatar of Chun-Hung sakana Huang

openSUSE Leap 15.3 安裝小記

openSUSE Leap 15.3 安裝小記


openSUSE Leap 15.2 Lifetime 到 2021/11 


趕在雙十一過後才認命的動手安裝 openSUSE Leap 15.3


安裝前處理

  • 使用 imagewriter 建立 openSUSE 安裝USB

  • 整理 /home/sakana 目錄

    • 使用 du -h --max-depth=1 /home/sakana 檢查

    • 清掉不要的檔案, 特別是 ~/.cache , ~/.config 內兩大瀏覽器內有站很大空間的 cache ( 這次趕時間就沒有這樣做 )

    • 因為有很多相關的 config 在個人家目錄內, 所以先把舊的 openSUSE Leap 15.1 的 /home 目錄, 使用# tar    cvf   home.tar  /home 進行打包到隨身碟 ( 不要使用 .gz 方式, 會比較快速 )

    • 新機器再使用 tar 指令還原回來

      • 這次先在 console F1 使用 root 使用者 tar 檔案在 /root/sakanahome.tar 然後將 /home/sakana 變更為 /home/sakana.tar, 將解壓縮的檔案直接移動過去


這次也是使用 USB 來進行安裝,  


== 安裝過程小記==


這次建立的時候我還是選擇 GNOME 桌面


磁碟區分割的部分, 使用引導的方式安裝, 因為一直出線開機分割區的警告, 所以我就用引導模式

  • 刪除所有分割區 

  • 建立獨立分割區 XFS

  • 根目錄取消 Btrfs 快照


===============


Network Manager:


openSUSE Leap 15.3 預設為 Network Manager



Google Chrome:95.0

https://www.google.com/intl/zh-TW/chrome/browser/ 


還是會有驗證性問題, 但是功能沒有差異

為了進行google 登入,先使用 Google 驗證App,  後面來處理yubikey


home 資料回復:


因為有很多相關的 config 在個人家目錄內, 所以先把舊的 openSUSE Leap 15.0 的 /home 目錄, 使用# tar    cvf   home.tar  /home 進行打包到隨身碟 ( 不要使用 .gz 方式, 會比較快速 )

新機器再使用 tar 指令還原回來

  • 這次先在 console F1 使用 root 使用者 tar 檔案在 /root/sakanahome.tar 然後將 /home/sakana 變更為 /home/sakana.tar, 將解壓縮的檔案直接移動過去



Notes

  • Ifconfig 預設沒有安裝, 要使用 ip  address show


關閉GNOME裡面的搜尋功能預設關閉 (點選右上角的設定按鈕), 因為我覺得用不到



中文輸入法問題:


不知道為何我的 gcin and ibus 同時存在

所以我就把 ibus 移除了


取消 USB 為安裝來源

# yast2  repositories 



Freemind:


因為 Freemind 沒有在 Leap 15.3 看到

所以嘗試使用 snapd 的方式來安裝, 參考官方網頁


安裝方式紀錄 

# zypper  addrepo  --refresh  https://download.opensuse.org/repositories/system:/snappy/openSUSE_Leap_15.3  snappy


# zypper  --gpg-auto-import-keys  refresh


# zypper  dup  --from  snappy


# zypper  install  snapd


Additional rpm output:

Please reboot, logout/login or source /etc/profile to have /snap/bin added to PATH.

On a Tumbleweed and Leap 15.3+ systems you need to run: systemctl enable snapd.apparmor.service


可以重開機, 登出登入, 讓 路徑變數內有 /snap/bin 這個路徑

  • 在 X 11 下就是開一個新的終端機切換為 root, 檢查 $PATH

  • 建議使用重開機的方式


# systemctl  enable  snapd


# systemctl  start  snapd


# systemctl  enable  snapd.apparmor


# systemctl  start  snapd.apparmor


# snap install freemind


實際上要重開機才會生效, 使用者應用程式才找的到


.mm 的檔案指定用 freemind  開啟



新增 Packman 套件庫:


使用 #yast2  repositories 加入社群版本的Packman 


#yast2  repositories


  • 除了 Packman 順便加入 nVidia 套件庫


Firefox Sync:

登入 Firefox Sync, 會處理之前有下載的 Plugin



flash-player:

# zypper   install   flash-player


Telegram desktop:


最後的解法是 使用 Web 的方式來使用 Telegram

  • https://webk.telegram.org/

  • 軟體 (  Flatpak  ) 安裝可以輸入中文 - 但是版本太舊會被 Telegram 說會被停用

  • snap 版本 / 下載 telegram 的 .xz 解壓縮, 不能輸入中文

    • 在 ~/.local/share/applications 目錄下找出 telegram-desktop.desktop 設定檔, 加入 QT_IM_MODULE=gin 也無效



播放器:


Codecs 的部分參考網路上找到的


# zypper  install  opi


# opi codecs


  • 這邊會裝 ffmpeg-4 以及一堆套件

  • 之後就可以使用播放器看 .mp4



Skype:


使用網頁版的 Skype 不另外安裝



GNOME Extension:


參考調校小記


主要是裝 chrome 內的 GNOME Shell integration


然後到 https://extensions.gnome.org/

選想裝的 Extension, 調爲 on 就好

裝了

  • TopIcons Plus 

  • NetSpeed


.7z 支援:

# zypper  install  p7zip


imagewriter:

# zypper  install  imagewriter

用來製作開機 USB


rdesktop 安裝與測試:

#zypper  install  freerdp


執行方式

#xfreerdp  -g  1280x1024  -u administrator  HOST_IP


修改 LS_OPTIONS 變數

# vi   /etc/profile.d/ls.bash

把 root 的 LS_OPTIONS 的 -A 移除


修改 HISTSIZE 變數

# vi   /etc/profile

修改 HISTSIZE 的筆數



ansible 安裝:


目前版本 2.9.21

#zypper  install  ansible


變更主機名稱:


#yast2 lan



Dropbox 135.4.421版 :


openSUSE Leap 15.3 預設不支援 dropbox

參考官方網站上面斷頭的安裝方式來安裝


> cd  ~  && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -


接下來,請從新建立的 .dropbox-dist 資料夾執行 Dropbox 精靈。


> ~/.dropbox-dist/dropboxd


順便安裝 Nautilus 相關套件

# zypper  install  nautilus-extension-dropbox



Filezilla 安裝:


#zypper  install  filezilla



Azure-cli 安裝:


版本: 2.30.0

參考 


匯入 rpm key

# rpm --import   https://packages.microsoft.com/keys/microsoft.asc


新增 Azure CLI 的 repo

# zypper  addrepo --name 'Azure CLI' --check https://packages.microsoft.com/yumrepos/azure-cli azure-cli


安裝 azure-cli 套件

# zypper  install --from azure-cli  -y  azure-cli


使用互動的方式登入 azure ( 現在已經不需要輸入機器碼, 直接驗證帳號就可以  )

> az  login


AWS Cli 安裝:


版本: 2.3.6



# curl  "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"  -o  "awscliv2.zip"


# unzip  awscliv2.zip


# ./aws/install


# aws --version


aws-cli/2.3.6 Python/3.8.8 Linux/5.3.18-59.10-default exe/x86_64.opensuse-leap.15 prompt/off


將補齊的指令 寫到或是修改到個人家目錄的 .bashrc 內

  • echo "complete -C '/usr/local/bin/aws_completer' aws" >> /root/.bashrc



Google Cloud SDK ( gcloud )安裝:


參考 http://sakananote2.blogspot.com/2019/04/gsutil-google-cloud-storage-in-opensuse.html

安裝 gcloud

  • 但是目前實務上是使用容器的方式來執行


使用一般使用者安裝


> wget https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-364.0.0-linux-x86_64.tar.gz 


> tar  zxvf  google-cloud-sdk-305.0.0-linux-x86_64.tar.gz


> ./google-cloud-sdk/install.sh


透過 gcloud 安裝 kubectl


> gcloud  components  install  kubectl


確認版本

> kubectl  version  --client


Visual Studio Core 相關 :


安裝 git

# zypper  install  git


參考 http://sakananote2.blogspot.com/2019/01/visual-studio-code-with-opensuse-leap-15.html


安裝 vscode


# rpm  --import   https://packages.microsoft.com/keys/microsoft.asc


# sh  -c  ' echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ntype=rpm-md\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc"  >  /etc/zypp/repos.d/vscode.repo '


# zypper  refresh


# zypper  install  code


安裝 vscode extension ( 這次沒有作, 因為將舊的 /home 還原回來, 另外目前 vscode 也有同步機制 )

  • AWS Toolkit for Visual Studio Code

  • Bracket Pair Colorizer

  • Code Time

  • Git Graph

  • GitHub Pull Requests

  • GitLens

  • Kubernetes

  • Python

  • REST Client

  • GitHub Pull Requests and Issues



PPSSPP 安裝:


#zypper  install  ppsspp


Podman 安裝:


參考官方網頁


# zypper  install  podman


看起來目前的階段 docker 與 podman 還是要並存 - 生態系支援與 rootless podman 相關考量


Docker 安裝:


目前版本 20.10.9

#zypper  install  docker


將使用者 sakana  加入 docker  群組 

# usermod -a -G docker sakana


#systemctl  start  docker

#systemctl  enable   docker



PPPoE 設定:


目前光世代有配一個固定 IP

參考 http://sakananote2.blogspot.com/2021/05/nmcli-network-manager-pppoe-ip.html


設定 PPPoE 以及固定 IP



這個版本沒有安裝的, 以後要安裝就看之前的筆記



這樣又可以再戰一年 :p


~ enjoy it


參考

a silhouette of a person's head and shoulders, used as a default avatar

Actualización de noviembre del 2021 de KDE Frameworks

Pasdo ya del 25 aniversario de KDE, siguen las entradas recurrentes de las actualizaciones mensuales de rigor que demuestra que los desarrolladores de KDE no dejan de trabajar en sus librerías. Así que se congratulan en anunciar la actualización de noviembre del 2021 de KDE Frameworks.  Con esta se llega a la versión 5.88, un suma y sigue de compromiso y constancia que no parece que tenga un final cercano.

Actualización de noviembre del 2021 de KDE Frameworks

A pesar de que para los usuarios corrientes esta noticia sea algo confusa ya que no se trata de realzar una nueva aplicación ni de una nueva gran funcionalidad del escritorio, el desarrollo de KDE Frameworks tiene repercusiones directas en él a medio y largo plazo.

La razón de esta afirmación es que KDE Frameworks es básicamente la base de trabajo de los desarrolladores para realizar sus aplicaciones, es como el papel y las herramientas de dibujo para un artista: cuanto mejor sea el papel y mejores pinceles tenga, la creación de una artista será mejor.

Actualización de noviembre del 2021 de KDE Frameworks

De esta forma, las mejoras en KDE Frameworks facilitan el desarrollo del Software de la Comunidad KDE, haciendo que su funcionamiento, su estabilidad y su integración sea la mejor posible.

El sábado 13 de noviembre de 2021 ha sido lanzado KDE Frameworks 5.88, la nueva revisión del entorno de programación sobre el que se asienta Plasma 5, el escritorio GNU/Linux de la Comunidad KDE, y las aplicaciones que se crean con para él.

Hay que recordar que los desarrolladores de KDE decidieron lanzar actualizaciones mensuales de este proyecto y lo están cumpliendo con puntualmente. La idea es ofrecer pocas pero consolidadas novedades, a la vez que se mantiene el proyecto evolucionando y siempre adaptándose al vertiginoso mundo del Software Libre.

Una gran noticia para la Comunidad KDE que demuestra la evolución continua del proyecto que continua ganando prestigio en el mundo de los entornos de trabajo Libres.

Más información: KDE

¿Qué es KDE Frameworks?

Para los que no lo sepan, KDE Frameworks añade más de 70 librerías a Qt que proporcionan una gran variedad de funcionalidades necesarias y comunes, precisadas por los desarrolladores, testeadas por aplicaciones especí­ficas y publicadas bajo licencias flexibles. Como he comentado, este entorno de programación es la base para el desarrollo tanto de las nuevas aplicaciones KDE y del escritorio Plasma 5.

Actualización de noviembre del 2021 de KDE Frameworks

Aquí podéis encontrar un listado con todos estos frameworks y la serie de artículos que dedico a KDE Frameworks en el blog,

Recuerda que puedes ver una introducción a Frameworks 5.0 en su anuncio de lanzamiento.

a silhouette of a person's head and shoulders, used as a default avatar

#openSUSE Tumbleweed revisión de la semana 45 de 2021

Tumbleweed es una distribución «Rolling Release» de actualización contínua. Aquí puedes estar al tanto de las últimas novedades.

Tumbleweed

openSUSE Tumbleweed es la versión «rolling release» o de actualización continua de la distribución de GNU/Linux openSUSE.

Hagamos un repaso a las novedades que han llegado hasta los repositorios esta semana.

El anuncio original lo puedes leer en el blog de Dominique Leuenberger, publicado bajo licencia CC-by-sa, en este este enlace:

Tumbleweed cuando toma un ritmo se mantiene si nada lo impide. Así es como esta semana se han publicado 5 nuevas snapshots: 1104, 1105, 1106, 1107 y 1110.

Los cambios más notables que han llegado a los repositorios de Tumbleweed son:

  • Mozilla Thunderbird 91.3.0
  • Mozilla Firefox 94.0.1
  • KDE Gear 21.08.3
  • Meson 0.59.4
  • GNOME 41.1
  • Libvirt 7.9.0
  • Más mejoras para rpmlint 2

Y pronto llegarán más actualizaciones. Entre las más importantes podemos destacar:

  • Coreutils 9.0
  • X.org server 21.1
  • XEN 4.16.0
  • Linux kernel 5.15.1
  • Rust 1.56
  • ICU 70.1
  • tbb 2021.4
  • gc 8.2.0
  • openSSL 3.0

Si quieres estar a la última con software actualizado y probado utiliza openSUSE Tumbleweed la opción rolling release de la distribución de GNU/Linux openSUSE.

Mantente actualizado y ya sabes: Have a lot of fun!!

Enlaces de interés

Geeko_ascii

——————————–

a silhouette of a person's head and shoulders, used as a default avatar

Programa de charlas de Akademy-es 2021 en línea #akademyes

Como ya sabréis este año se celebra Akademy-es 2021 de nuevo en línea por motivos de sobra conocidos por todo el mundo Hoy viernes se ha publicado el programa de charlas de Akademy-es 2021. Léelo y seguro que encuentras más de una razón para acompañarnos.

Programa de charlas de Akademy-es 2021 en línea #akademyes

Del 19 al 21 de noviembre Akademy-es 2021 se celebrará en línea, el evento más importante para los desarrolladores y simpatizantes de KDE, organizado por KDE España.

Este año se volvemos a tener un gran programa de ponencias, que van desde lo último en Plasma y en proyectos KDE pasando por temas de hardware, programación, ciberseguridad y privacidad.

Y si no te lo crees simplemente échale un vistazo al programa.

Programa de charlas de Akademy-es 2021 en línea #akademyes

Viernes 19

  • 18:30 – 20:30 Taller Producción de podcast KDE Express con Software LibreDavid Marzal

Se tratarán utilidades como Audacity, ffmpeg, VLC, Konsole, bash, Dolphin, Kate, Hugo, Gitlab Pages, Firefox

Sábado 20

12:00 – 12:10 Ceremonia de aperturaAdrián Chaves, presidente de KDE España

12:10 – 12:50 La colección de parches KDE Qt 5.15Albert Astals Cid, desarrollador de KDE

12:50 – 13:40 KdenliveJuan Febles, editor de Podcast Linux

13:40 – 14:30 KalendarClaudio Cambra, desarrollador de KDE

14:30 – 15:10 Nuevos horizontes en Linux Multimedia con PipeWireJulián Bouzas, Equipo de Multimedia de Collabora

Descanso

17:00 – 17:50 10 trucos de KDEBaltasar Ortega, secretario de KDE España

17:50 – 18:40 LliureX se pasa a KDEEnrique Medina Gremaldos, Lliurex

18:40 – 19:30 Asterisk y las comunicaciones libres – Jesús Pacheco, asesor informático

19:30 – 20:00  Charlas relámpago

Las charlas relámpago tendrán una duración de aproximada entre 5 y 10 minutos.

20:00 – 20:40 ¿Qué es KDE España y a qué se dedica?Junta KDE España

22:00 Programa social

Domingo 21

12:00 Comienzo de la sesión del domingo

12:10 – 12:50 Wiki Loves, los concursos de fotografía en Wikipedia, Santiago Navarro Sanz, vocal de Wikimedia España, y editor de Wikipedia y de Wikimedia Commons

12:50 – 13:40 Eclipse FoundationAgustín Benito, Oniro Program Manager

13:40 – 14:30 Firmas digitales en ficheros PDF con Okular – Albert Astals Cid, desarrollador de KDE

14:30 – 15:00 Charlas relámpago

Las charlas relámpago tendrán una duración de aproximada entre 5 y 10 minutos.

Descanso

17:00 – 17:25 Contratos marco de desarrollo y cláusulas de propiedad intelectualMarelisa Blanco, nolegaltech

17:25 – 17:50 Blockchain y software libre Mar Diez Henao, nolegaltech

17:50 – 18:40 Plasma Mobile y openSUSE en PinephoneAdrián Campos, desarrollador de KDE

18:40 – 19:10 Charlas relámpago

Las charlas relámpago tendrán una duración de aproximada entre 5 y 10 minutos.

19:15 – 20:00 Hardware y KDEAleix Pol, desarrollador de KDE y presidente de KDE e.V.

20:00 – 20:10 Clausura Akademy-es 2021Adrián Chaves, presidente de KDE España

Nota: Las charlas y horarios pueden sufrir ligeras modificaciones dependiendo de la disponibilidad de los ponentes

Vía: KDE España

a silhouette of a person's head and shoulders, used as a default avatar

openSUSE Tumbleweed – Review of the week 2021/45

Dear Tumbleweed users and hackers,

Tumbleweed keeps being predictable when it comes to the update cadence. This week, we could publish 5 fully tested snapshots (1104, 1105, 1106, 1107, and 1110).

The main changes contained in these snapshots were:

  • Mozilla Thunderbird 91.3.0
  • Mozilla Firefox 94.0.1
  • KDE Gear 21.08.3
  • Meson 0.59.4
  • GNOME 41.1
  • Libvirt 7.9.0
  • More improvements to rpmlint 2

Based on the staging projects and the snapshot currently under build, we predict to be able to deliver these items soon™:

  • Coreutils 9.0
  • X.org server 21.1: the reported DPI change has been reverted, as it was much more intrusive than anticipated
  • XEN 4.16.0
  • Linux kernel 5.15.1: in a later step, the compression method for kernel modules will be changed from xz to zstd
  • Rust 1.56
  • ICU 70.1
  • Bash: moving away from update-alternatives to handle /bin/sh; To allow busybox to step in as ‘sh’ provider, we are switching to a package replacement model (e.g. bash-sh, busybox-sh). Those packages will install the relevant /bin/sh symlinks
  • tbb 2021.4: breaks opencv3
  • gc 8.2.0: breaks texlive and guile
  • openSSL 3.0: No visible progress in the staging. Main blockers so far seems to be python 3.6 and python-cryptography

a silhouette of a person's head and shoulders, used as a default avatar

Haz crecer un bonsai en la terminal de Linux

Un script de bash hace crecer un bonsai completo en la terminal de tus sistema GNU/Linux ¿No es justo lo que necesitabas?

En la terminal de nuestros sistemas GNU/Linux se pueden realizar muchas tareas y configuraciones del sistema, pero siempre es una herramienta que suele ser intimidatoria para las personas que llegan a GNU/Linux.

Pero además de todas esas cosas serias que se pueden hacer en la terminal, también hay tiempo para hacer cosas más divertidas (si eres un friki) en la terminal, por ejemplo ver crecer un bonsai…

Hace un tiempo en el blog ya pudiste leer un artículo sobre algo tan poco útil pero quizás sí friki como es cowsay, en este artículo veremos algo igual de poco útil, pero sí friki y divertido. Además de disponer del código fuente para ver cómo se ha programado.

Se trata de ver cómo crece un bonsai en nuestra terminal. Tenemos dos opciones, una escrita en un script de Bash y la otra escrita en C y disponible en los repositorios de varias distribuciones de GNU/Linux.

Ambas escritas por John Allbritten, disponibles en su repositorios de GitLab y publicadas bajo licencia GNU GPLv3.

Bonsai escrito en Bash

La primera opción es un script de bash que hace crecer un bonsai en nuestra terminal y que admite varias opciones. Para poder disfrutar de ello abriremos una terminal y descargamos el script mediante:

wget https://gitlab.com/jallbrit/bonsai.sh/-/raw/master/bonsai.sh -O bonsai.sh

Le damos permisos de ejecución al archivo mediante: chmod +x bonsai.sh

Y lo ejecutamos mediante: ./bonsai.sh

Para echar un vistazo a la ayuda le podemos añadir la opción -h. Podemos hacer crecer bonsais más grandes, ver cómo crece en directo, añadir un mensaje, etc…

Puedes hacer que estén creciendo diferentes bonsais en un bucle infinito.

Si tienes curiosidad de cómo funciona, abre en un editor el script y diviértete añadiendo funcionalidades, tus propias opciones, etc.

Tienes el código en GitLab:

Cbonsai en los repositorios

El script en bash anterior ha crecido hasta convertirse en un programa escrito en C que realiza la misma tarea y que está disponible en los repositorios de la mayoría de distribuciones de GNU/Linux.

También tiene algunas funcionalidades que el script en bash no tenía. Por ejemplo el modo protector de pantalla, para dejar el script creciendo mientras no estás trabajando con tu equipo y demostrar que eres muy friki.

Tienes el código en GitLab


Estos programas se basan en un generador de bonsais escrito en Javascript, del que también tienes disponible el código fuente.

Más allá del frikismo y de la curiosidad es una buena manera de empezar a destripar el código y aprender cosas nuevas… y darle un toque interesante a nuestra terminal.

El software lo conocí gracias a una captura de pantalla del usuario nemonix en el foro de openSUSE, así que gracias por ese descubrimiento 😉

¿Te animas a probarlo en tu equipo? ¿Ya lo conocías?

a silhouette of a person's head and shoulders, used as a default avatar

Celebrating 30 years of Linux - is 2021 finally the year of the Linux desktop?

Celebrating 30 years of Linux - is 2021 finally the year of the Linux desktop?

My favorite Linux insider joke is that “The year of the Linux desktop is always next year”. Each year there is a new technology which is expected to achieve breakthroughs. I was asked almost a decade ago to give a talk about this topic. I proved to my audience that the year of the Linux desktop is already here, just not the way most Linux users expect it. Hopefully it will be even easier now!

Linux was born 30 years ago.

I started to use Linux just three years later. The first machine where I installed Linux was an i486 box with 8 MB (not GB!) of RAM. I brought Linux home on floppy disks and did not install a graphical user interface (GUI). Next I installed Linux on an i386 box with 16 MB of RAM, an unbelievably large RAM size at that time. I made my first steps with a GUI on Linux there. I used the FVWM2 window manager on top of X11 and ran Netscape Navigator to browse the web.

Read the rest of my blog at https://www.mndwrk.com/blog/celebrating-30-years-of-linux-is-2021-finally-the-year-of-the-linux-desktop

a silhouette of a person's head and shoulders, used as a default avatar

Confirmadas las jAkaranas de València y Almería de #akademyes 2021

Con el programa a punto de publicarse me complace anunciar también que ya han sido confirmadas las jAkaranas de València y Almería de #akademyes 2021, es decir, sitios físicos donde reunirse con nuestros compañeros del Software Libre y celebrar la Akademy-es de este año.

Confirmadas las jAkaranas de València y Almería de #akademyes 2021

A pocos días del comienzo de Akademy-es 2021 en línea, que se celebra del 19 al 21 de noviembre, y a horas de que se publique su programa de charlas, me congratula anunciar que se han confirmado dos jAkaranas donde poder disfrutar evento online de forma presencial, es decir, contando con la compañía de los simpatizantes del proyecto KDE.

Las ciudades que han confirmado sus jAkaranas son:

Confirmadas las Jakaranas de Valencia y Almería de #akademyes 2021

¿Qué es una jAkarana?

La idea de una jAkajarana es similar a una Akademy o Akademy-es presencial, pero en lugar de celebrarse en un único lugar, se celebrarán en varios lugares de forma simultánea. Todas las jAkajarana están integradas dentro de la Akademy-es de este año: durante la jAkajarana se proyectarán las charlas que se impartan en la Akademy, pero sobre todo permitirán socializar y conocer en persona a los otros asistentes y a los colaboradores de KDE de tu ciudad.

  • Podrás seguir en directo las actividades online de Akademy-es con otros asistentes
  • Podrás ver en vivo las charlas impartidas por ponentes de tu ciudad
  • Podrás conocer a colaboradores de KDE en persona
  • Habrá actividades sociales especiales en cada jAkarana

Organiza una jAkarana

Así que ya sabes, si no ves tu ciudad en la lista y quieres organizar una jAkarana, envía un cooreo a akademy-es-org@kde-espana.org, contando:

  • Tu nombre y si habría más colaboradores locales
  • Dónde quieres hacerla (en qué localidad)
  • ¿Contrarías con algún local para realizar el evento?
  • ¿Se te ocurre alguna actividad social específica para realizar?
the avatar of Vojtěch Zeisek

Kurz práce v příkazové řádce Linuxu nejen pro MetaCentrum 2022

Kurz práce v příkazové řádce Linuxu nejen pro MetaCentrum 2022

Nebojte se příkazové řádky Linuxu! Je to mocný a přívětivý nástroj umožňující efektivně zpracovat i velká data a zautomatizovat činnosti. Prakticky shodně funguje příkazová řádka i v Apple macOS, BSD a dalších UNIXových systémech, nejen v Linuxu. Kurz je vhodný pro úplné začátečníky i mírně pokročilé. Jediným vstupním požadavkem je zájem (nebo potřeba) pracovat v příkazové řádce, typicky na linuxovém výpočetním serveru.

vojta
the avatar of Karatek's Blog

Installing openSUSE Tumbleweed on the Enclustra Mars MA3

As part of my school internship at TEM Messtechnik I got the oppertunity to work on the Enclustra Mars MA3, a FPGA SoC with two ARMv7 cores. This post describes the process of getting Linux (more precisely, openSUSE Tumbleweed) to work on this SoC.

Requirements

In order to build and install all the needed files, you’re gonna need the following:

  • 1x Enclustra Mars MA3
  • 1x Enclustra Mars EB1
  • A computer capable of running Linux, in this case openSUSE Tumbleweed
  • A computer running Windows (we need it for the flash tool)
  • 1x MicroSD Card.

Setting up the build environmentee

Setting up the build environment is not difficult, but it is not a “clean” way of using a Linux system. We’re gonna need some packages that are not maintained anymore and are therefore not avaliable in the openSUSE Tumbleweed repositories. Installing packages from unofficial repositorys can be dangerous for your system though, so the first thing we’re gonna do is create a filesystem snapshot:

snapper create --description "Snapshot before installing Enclustra build environment"

This will create a Btrfs snapshot so that we can rollback (snapper rollback)to the state of the system before installing the build environment. Because no --cleanup-algorithm is specified this snapshot will not get removed after a certain period of time.

First, we need to add some repositorys:

sudo zypper ar https://download.opensuse.org/repositories/Kernel:/tools/openSUSE_Factory/Kernel:tools.repo
sudo zypper ref 

Now we can install all the dependencies we need:

sudo zypper install gcc48 gcc48-c++ git autoconf bc curl glibc-32bit mercurial unzip wget make patch openssl-devel python3-termcolor

In addition, we need a really old version of python-dialog, which is not avaliable for Tumbleweed, so we need to install it manually from an unsupported repository:

sudo zypper in https://download.opensuse.org/repositories/openSUSE:/Leap:/42.3/standard/noarch/python-dialog-3.3.0-8.1.noarch.rpm

Under normal circumstances, you should never ever install a package from Leap in Tumbleweed! The only reason we can do this here is that Leap 42.3 won’t change anymore (since it is discontinued) and I tested that everything works. Never do this regularly!!! You have been warned.

We need to set the default compiler:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-4.8 50

Now, we can finally install the buildtool:

git clone https://github.com/enclustra-bsp/bsp-altera.git && cd bsp-altera

Since we want to get openSUSE Tumbleweed running instead of the default (bare bones) Linux Enclustra provides, we do not need to build the root filesystem. We do need to build however a bootloader (U-Boot) and a Linux Kernel. Both these parts are part of the openSUSE distribution, but the versions in the repositorys are not compatible with the Mars MA3, so we need to build the versions provided by Enclustra. The version of the Linux kernel provided is not up to date though, but I won’t go into detail on how to build an upstream Linux kernel in this post.

To start the build process, run

./build.sh -d Mars_MA3/Mars_EB1/MMC -x Linux -x U-Boot

The process is going to take some time, so go grab some tea (or coffee, if you prefer that for whatever reason…). After the build succeeds, you can find the build results in a folder named out_<timestamp>_<module>_<board>_<bootmode>. In my case that is out_20211105094426_Mars_MA3_Mars_EB1_MMC.

Partitionizing the SD Card

The SoC expects a specific partitionizing on our SD card, which we need to create manually using fdisk (replace /dev/mmcblk0 with the block name of the SD card):

sudo fdisk /dev/mmcblk0

Use fdisk as the following:

Welcome to fdisk (util-linux 2.36.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x99faaaa1.

Command (m for help): o
Created a new DOS disklabel with disk identifier 0x8c918d1b.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 2
First sector (2048-16777215, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-16777215, default 16777215): +2M

Created a new partition 2 of type 'Linux' and of size 2 MiB.

Command (m for help): a2
Selected partition 2
The bootable flag on partition 2 is enabled now.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1,3,4, default 1): 1
First sector (6144-16777215, default 6144): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (6144-16777215, default 16777215): +200M

Created a new partition 1 of type 'Linux' and of size 200 MiB.

Command (m for help): t
Partition number (1,2, default 2): 1
Hex code or alias (type L to list all): c

Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (415744-16777215, default 415744): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (415744-16777215, default 16777215): 

Created a new partition 3 of type 'Linux' and of size 7.8 GiB.

Command (m for help): w
The partition table has been altered.
Syncing disks.

After the partitioning is done, we can download the Tumbleweed root filesystem, which gets built by the openSUSE Build Service. Our SoC has an armv7 architecture, so we need the rootfs for that specific architecture. Download the image wget:

wget http://download.opensuse.org/ports/armv7hl/tumbleweed/appliances/openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l.tar.xz

You’re also gonna need my deploy script, which makes flashing everything to a MicroSD card really simple. Download it and make it executable:

wget https://code.opensuse.org/KaratekHD/MA3/raw/main/f/deploy.py
chmod +x deploy.py 

Usage of the deploy script is really simple:

usage: deploy.py [-h] -r ROOTFS -d DEVICE -i INPUT_DIR

Deploy openSUSE Tumbleweed to the Mars MA3.

optional arguments:
  -h, --help            show this help message and exit
  -r ROOTFS, --rootfs ROOTFS
                        Path to rottfs.tar
  -d DEVICE, --device DEVICE
                        Deviceprefix to deploy to (e.g. /dev/mmcblk0p)
  -i INPUT_DIR, --input_dir INPUT_DIR
                        Build files generated by build.sh

An example of using the deploy script:

./deploy.py \\
-d /dev/sdb \\
-r /home/jens/bsp-altera/openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l.tar.xz \\
-i out_Mars_MA3_Mars_EB1_MMC/

Replace the paths with the ones matching for your situation. Warning: If your SD-Card is the block device /dev/sdb, use dev/sdb as the parameter for -d. If your block device is e.g. /dev/mmcblk0 , you’ll need to use /dev/mmvblk0p as the parameter for -d. Also, it is important that you use an absolut path for the rootfs, even if it is located in the same directory.

The script will ask for your root password and then

  1. Format the partitions of the SD card with the required file systems
  2. Flash the preloader and the Linux Kernel
  3. Extract the rootfs to the SD card

An example output would be:

Formatting partition 1 with fat32...
mkfs.fat 4.2 (2021-01-31)
Formatted partition 1
Formatting partition 3 with ext2...
mke2fs 1.46.4 (18-Aug-2021)
/dev/sdb3 contains a ext2 file system labelled 'rootfs'
	last mounted on / on Thu Jan  1 01:00:01 1970
Proceed anyway? (y,N) y
Creating filesystem with 15539968 4k blocks and 3891200 inodes
Filesystem UUID: b229ef5a-d94a-4851-bd70-c8c00c52fadb
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done   

Formatted partition 3
Flashing preloader...
512+0 records in
512+0 records out
262144 bytes (262 kB, 256 KiB) copied, 0.0645477 s, 4.1 MB/s
Preloader flashed!
Syncing...
Synced!
Mounting /mnt/rootfs
Mounting /mnt/boot
Copying files to /mnt/boot
- uImage
- devicetree.dtb
- fpga.rbf
- u-boot.img
- uboot.scr
Removing everything from /mnt/rootfs...
Extracting rootfs from /home/jens/bsp-altera/openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l.tar.xz to /mnt/rootfs...
Extracted /home/jens/bsp-altera/openSUSE-Tumbleweed-ARM-JeOS.armv7-rootfs.armv7l.tar.xz to /mnt/rootfs
Syncing...
Umounting devices...
Done

After the script did its magic, it’s time to move on.

Building U-Boot

In our experiences, we couldn’t get the SoC to use the U-Boot image deployed to the SD Card. U-Boot is, however, required to boot the Linux kernel, so we need some other way to get U-Boot to run, which, in this case, is to flash it to the QSPI Flash of the SoC itself.

In order to do this, we need to build a version of U-Boot that works from QSPI. To do this, navigate to the build directory and run

./build.sh -d Mars_MA3/Mars_EB1/QSPI -x U-Boot

Now, navigate into the output folder (e.g. ./out_Mars_MA3_Mars_EB1_QSPI) and transfer u-boot.img and preloader-mkimage.bin to the Windows PC.

Setting up the board

The Mars MA3 In order to get the board to boot from the QSPI Flash (and aafter that from the SD card) and to give us a seral output, we need to set up the dipswitches (see above) as following:

Dipswitch Value
A1 On
A2 Off
A3 Off
A4 On
B1 Off
B2 Off
B3 Off
B4 Off


Now you can connect a Micro-USB cable to USBUB (see the image above) and use it to flash to the QSPI and use a serial console as described below.

Flashing the bootloader

Connect the Board to the Windows PC via USB, power it using the dc input on the evaluation board and click on “Enumerate” in MCT. Make sure no other serial devices are connected to your PC. For example a USB-Jtagger can cause problems. The board should show up in the list.

In the “Operation” drop-down menu, select “Erase”, select “Full chip” and click on the “Erase” button: Erasing the chip in MCT

In the next step, select “Program” from the “Operation” drop-down menu. Set the Start address to 0, enable “Preserve boundary data” and disable “Boot after programming”. Now select the preloader-mkimage.bin file as the Bitstream file and click on “Program”. Once the preloader has been flashed, set the Start address to 6000 and select the U-boot.img file as the bitstream file. Keep the rest of the settings as descibed above and click “Program” again. Flashung U-Boot

Connecting to a serial console

Now connect the Board to a PC via USB (TODO @Phillip: Switches für Serielle Konsole?). Use Putty, Minicom, Picocom or whatever tool you prefer to use to connect via serial to the Board, just make sure to set the Baudrate to 115200. Putty

Configuring U-Boot

With a serial console connected, power on the Board. You’ll see some output, but wait until you see a little arrow (=>) in the line at the bottom. Now, type

setenv bootcmd "run mmcboot"
saveenv

Now your board will boot from the SD card by default. Now it’s time to actually boot Linux, so power off the board. U-Boot does not have a shutdown command, so just pull the power plug.

Booting the Linux operating system

Insert the MicroSD card into the slot on the Board. and power on the board. This time you should get a lot more output then before, because this time it actually boots into Linux. There are gonna be a lot of lines starting with [OK] in green, but also a few starting with a red [FAILED]. That’s fine though, everything works even with these minor failures.

Once it’s done booting, you should see something like this on the serial console:

Welcome to openSUSE Tumbleweed 20211107 - Kernel 4.15.0-g506369939 (ttyS0).

eth0:

localhost login:

That’s it! You succesfully installed openSUSE Tumbleweed on your Mars MA3, sou you can now use it like every regular Tumbleweed machine. The default credentials are root:linux, so make sure to change them using passwd before doing anything else. I also recommend to do a quick zypper dup before starting to work on the SoC.

Further reading