20210917のLinuxに関する記事は6件です。

自作CコンパイラがAlpline Linuxで動きました

タイトル通りです。ちょっと不正なメモリアクセスがあり動きませんでした。 iPhoneのiSHでも動くと思います。 あとはエディッターで構造体のフィールドの補完もできたらいいですね。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【RHEL】vimコマンドがないとき【Linux素人】

vimコマンドを打つと「あ、んなもんねぇよ」って突き返されました。 [root@####### ~]# vim /etc/ssh/sshd_config -bash: vim: command not found bash で VIMコマンドの導入 yum -y install vim-enhanced
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

共通ライブラリがみつからない(cannot open shared object file)エラー対処方法

環境 Ubuntu Linux 20.04 (AWS) 用語 本記事では「共通ライブラリ = shared object file = soファイル = *.so」 としている トラブル shared libraries のパスを設定しているにも関わらず、ライブラリがみつからないという旨のエラーが発生 以下、エラーメッセージ(アプリケーションに依存したメッセージかもしれない) error while loading shared libraries: *.so: cannot open shared object file: No such file or directory Ubuntu が shared libraries を探すパスの確認方法 パスの一覧を以下のコマンドで確認 cat /etc/ld.so.conf.d/* 以下は実行結果 /etc/ld.so.conf.d/ に、共通ライブラリのパスを書いたconfファイルを保存する仕組みのようだ アプリは、このフォルダ内にあるconfファイルに書かれたパスをもとに soファイルを探すというようになる # libc default configuration /usr/local/lib # Multiarch support /usr/local/lib/x86_64-linux-gnu /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu Ubuntu が shared libraries を探すパスの設定方法 新規にパスを書いた conf ファイルを作成 vim /etc/ld.so.conf.d/additive_path.conf 以下は、ファイルの内容 /etc/ld.so.conf.d/additive_path.conf /usr/lib64 トラブル(再確認) additive_path.conf に *.so があるパスを書いて保存しているにも関わらず、*.soファイルがないというエラーが発生 解決方法 以下のコマンドを実行 shared libraries のパスが反映されて、Ubuntuがライブラリを発見することができた キャッシュが効くかもしれないので再起動が必要かもしれない、とのこと(筆者の環境では、再起動しても反映されず、 ldconfig 実行直後にパスが反映された sudo ldconfig 理由 32ビットと64ビットのアーキテクチャを1つのシステムで実現できるようにしていて、それを実現するために ldconfig コマンドを実行する必要がある、ということのようだ(よくわかっていない) 付録 以下の環境変数でも、ライブラリのパスを設定できる export LD_LIBRARY_PATH=/usr/lib64 LD は、 LOAD または LOADER の略のようだ 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

OMIGOD脆弱性について

Wizのセキュリティ研究者は、Azure上のLinux仮想マシンの主要な脆弱性を発見しました。 “Secret” Agent Exposes Azure Customers To Unauthorized Code Execution お客様がクラウドにLinux仮想マシンをセットアップすると、特定のAzureサービスを有効にすると、OMIエージェントが知らないうちに自動的にデプロイされます。 パッチが適用されない限り、攻撃者はこれら4つの脆弱性を簡単に悪用して、root権限にエスカレートし、悪意のあるコードをリモートで実行できます(たとえば、身代金目的でファイルを暗号化する)。 マイクロソフトは、次のCVEを発行ししました。 CVE-2021-38647 rootとして認証されていないRCE(重大度:9.8) CVE-2021-38648 特権昇格の脆弱性(重大度:7.8) CVE-2021-38645 特権昇格の脆弱性(重大度:7.8) CVE-2021-38649 特権昇格の脆弱性(重大度:7.0) Azureユーザーの皆様このブログのを読んで、OMIが最新バージョン(v1.6.8-1)を確認してください。 RHEL8でのアップグレード バージョン確認します。 # /opt/omi/bin/omiserver --version /opt/omi/bin/omiserver: OMI-1.6.8-0 - Wed Jan 13 18:36:50 PST 2021 OMI-1.6.8-1以下であれば、アップグレードしてください。 # wget https://github.com/microsoft/omi/releases/download/v1.6.8-1/omi-1.6.8-1.ssl_110.ulinux.x64.rpm # rpm -Uhv omi-1.6.8-1.ssl_110.ulinux.x64.rpm # /opt/omi/bin/omiserver --version /opt/omi/bin/omiserver: OMI-1.6.8-1 - Wed Aug 11 20:52:52 PDT 2021 omidサービスを再起動します。 # systemctl stop omid.service # systemctl daemon-reload # systemctl start omid.service CVE-2021-38647について CVE-2021-38647はリモートコード実行の脆弱性です。 Azure Configuration ManagementはOMIポート5986を使用します。 System Center Operation Manager はOMIポート1270を使用します。 OMIがどのポートでリッスンしているかを調べるには以下のコマンドを使ってください。 # grep httpsport= /etc/opt/omi/conf/omiserver.conf httpsport=0 上記みたいにhttpsport=0場合はセーフです。それ以外にはリモートコード実行のリスクがあります。 以上です。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[2021年9月版] FreeRTOS Linuxデモ

はじめに 「LinuxでシンプルにFreeRTOSを体験する」 これを目的とした記事です(Windows版はこちら) 本編 環境 Linux環境 Ubuntu 20.04 LTSで動作確認 QEMU 4.2.1 ARMツールチェイン 10.2.1 20201103 (release) FreeRTOS 202107.00 GitHub最新版(執筆現在) その他は適宜。 手順 QEMUインストール $ sudo apt-get install -y make qemu qemu-system-arm ARMツールチェインのインストール $ cd ~ $ curl https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -o gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 $ tar -xjvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 (curlにかなり時間が掛かります) パスを通す ~/.profileを編集、最下部に以下を追加。 export PATH="$HOME/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH" GitHubクローン Windowsデモ版と同様です。 $ cd ~ $ git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules --depth 1 ビルド いざmakeしてみますと、、、 $ cd ./FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC $ make 残念、ビルドエラーが出ます。 arm-none-eabi-gcc -DmainCREATE_SIMPLE_BLINKY_DEMO_ONLY=1 -nostartfiles -mthumb -mcpu=cortex-m3 -Wno-error=implicit-function-declaration -Wno-builtin-declaration-mismatch -Werror -O3 -fstrict-aliasing -Wstrict-aliasing -Wno-error=address-of-packed-member -I/home/user/FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC -I/home/user/FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/CMSIS -I/home/user/FreeRTOS/FreeRTOS/Source/include -I/home/user/FreeRTOS/FreeRTOS/Source/portable/GCC/ARM_CM3 -DQEMU_SOC_MPS2 -DHEAP3 -MMD -c main.c -o build/main.o main.c: In function 'main': main.c:71:9: error: 'snprint' undeclared (first use in this function); did you mean 'snprintf'? 71 | snprint | ^~~~~~~ | snprintf main.c:71:9: note: each undeclared identifier is reported only once for each function it appears in main.c:71:16: error: expected ';' before 'return' 71 | snprint | ^ | ; 72 | return 0; | ~~~~~~ make: *** [Makefile:103: build/main.o] エラー 1 main.cにsnprintのみの行があるので、コメントアウトなり削除なりで、makeを通せます。 70 #endif /* if ( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 ) */ 71 // snprint /* コメントアウト */ 72 return 0; 実行 以下コマンドで、無事正常動作が確認できます。 $ sudo qemu-system-arm -machine mps2-an385 -monitor null -semihosting --semihosting-config enable=on,target=native -kernel ./build/RTOSDemo.axf -serial stdio -nographic blinking blinking blinking blinking blinking blinking blinking blinking (軽く)解説 2つのタスク生成、その間のキュー送受信でもって、LED点滅を疑似っています。 main_blinky()が大元の関数ですので、後は煮るなり焼くなりで、知見を深めてください! 参考(ネタばらし) 実はここに記載した内容は、Readme.mdにすべて書いてあります。 おわりに Windowsデモと同様に、要は GitHubからコード取得してビルドして動かすだけ です。とてもかんたんなので、何かきっかけ・参考になれば幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[2021年9月版] FreeRTOS Linux(QEMU)デモ

はじめに 「LinuxでシンプルにFreeRTOSを体験する」 これを目的とした記事です(Windows版はこちら) 本編 環境 Linux環境 Ubuntu 20.04 LTSで動作確認 QEMU 4.2.1 ARMツールチェイン 10.2.1 20201103 (release) FreeRTOS 202107.00 GitHub最新版(執筆現在) その他は適宜。 手順 QEMUインストール $ sudo apt-get install -y make qemu qemu-system-arm ARMツールチェインのインストール $ cd ~ $ curl https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 -o gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 $ tar -xjvf gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2 (curlにかなり時間が掛かります) パスを通す ~/.profileを編集、最下部に以下を追加。 export PATH="$HOME/gcc-arm-none-eabi-10-2020-q4-major/bin:$PATH" GitHubクローン Windowsデモ版と同様です。 $ cd ~ $ git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules --depth 1 ビルド いざmakeしてみますと、、、 $ cd ./FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC $ make 残念、ビルドエラーが出ます。 arm-none-eabi-gcc -DmainCREATE_SIMPLE_BLINKY_DEMO_ONLY=1 -nostartfiles -mthumb -mcpu=cortex-m3 -Wno-error=implicit-function-declaration -Wno-builtin-declaration-mismatch -Werror -O3 -fstrict-aliasing -Wstrict-aliasing -Wno-error=address-of-packed-member -I/home/user/FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC -I/home/user/FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/CMSIS -I/home/user/FreeRTOS/FreeRTOS/Source/include -I/home/user/FreeRTOS/FreeRTOS/Source/portable/GCC/ARM_CM3 -DQEMU_SOC_MPS2 -DHEAP3 -MMD -c main.c -o build/main.o main.c: In function 'main': main.c:71:9: error: 'snprint' undeclared (first use in this function); did you mean 'snprintf'? 71 | snprint | ^~~~~~~ | snprintf main.c:71:9: note: each undeclared identifier is reported only once for each function it appears in main.c:71:16: error: expected ';' before 'return' 71 | snprint | ^ | ; 72 | return 0; | ~~~~~~ make: *** [Makefile:103: build/main.o] エラー 1 main.cにsnprintのみの行があるので、コメントアウトなり削除なりで、makeを通せます。 70 #endif /* if ( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 ) */ 71 // snprint /* コメントアウト */ 72 return 0; 実行 以下コマンドで、無事正常動作が確認できます。 $ sudo qemu-system-arm -machine mps2-an385 -monitor null -semihosting --semihosting-config enable=on,target=native -kernel ./build/RTOSDemo.axf -serial stdio -nographic blinking blinking blinking blinking blinking blinking blinking blinking (軽く)解説 2つのタスク生成、その間のキュー送受信でもって、LED点滅を疑似っています。 main_blinky()が大元の関数ですので、後は煮るなり焼くなりで、知見を深めてください! 参考(ネタばらし) 実はここに記載した内容は、Readme.mdにすべて書いてあります。 おわりに Windowsデモと同様に、要は GitHubからコード取得してビルドして動かすだけ です。とてもかんたんなので、何かきっかけ・参考になれば幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む