2026年1月23日金曜日

httpサバ

Qiitaにログインして、便利な機Mon

はじめに

業務で久しぶりにC言語を使うことになったため、復習がてらMongooseというライブラリを使用して簡易なHTTPサーバーを作成しました。
簡単な内容にはなりますが備忘録として残しておきます。

環境

Windows11
Microsoft Visual Studio 2022

事前準備

Mongooseをプロジェクトに追加します。
以下からmongoose.hmongoose.cをダウンロードして適宜インクルードすればOKです。

実装

Mongooseのドキュメントに記載されているサンプルコードをベースに、適宜関数への分割やエラー処理の追加を行い、HTMLを返す新たなAPI/api/html/indexを実装しました。
今回はGETリクエストのみで、他は全てエラーとなります。

main・リクエスト受信部分

各ソースコードに対応するヘッダファイルは記述が少ないので省略しています。

main・Handler

/api/html/index

サーバーを起動し、ブラウザでURLにアクセスするとシンプルなHTMLのページが表示されます。
GETのみ実装のため、POST等のリクエストを受信した場合は405エラーを返します。

/api/html/index

/api/helloに関しては、/api/html/indexと同じような構成で、元のサンプルコードの処理を残したまま405エラーを追加したのみのため省略します。

実行

http://localhost:8000/api/html/indexにブラウザでアクセスすると以下のようなページが表示されます。

Index

Current timeの部分は一秒ごとに更新されていきます。

最後に

Cはエンジニアになりたての時に二ヶ月程度学んだだけで、その後はもっぱらC++を使用していたためかなり書き方を忘れていて妙なミスが多発しました。mallocが得意でないのでvectorなどの動的配列を簡単に作れるクラスが恋しいです。

今回は静的なファイルを返すAPIを作ったので、DBから取得した値を返すなどの動的な値を返すAPIも作成してみたいです

2026年1月13日火曜日

Windows APN設定

 


WindowsでのAPN設定は、「設定」>「ネットワークとインターネット」>「携帯電話(またはモバイル)」から行い、SIMカードのキャリア( LIBMO, Ubigi, b-mobile, NifMo, Docomo, smamobaなど)が指定する「プロファイル名」「APN」「ユーザー名」「パスワード」「サインイン情報の種類」「IPの種類」などの情報を「インターネットAPNの追加」で入力・保存して適用します。 

Windows 10/11でのAPN設定手順

設定を開く:

[スタートボタン] > [設定] > [ネットワークとインターネット] を選択します。

「携帯電話」または「モバイル」を選択:

左側メニューから「携帯電話」(または「モバイル」)を選びます。

詳細オプションへ:

「詳細オプション」をクリックします。

APNを追加:

「インターネットAPNの追加」または「APNを追加します」を選択します。

情報を入力:

キャリアから指定された以下の情報を入力します。

名前: 任意の名前 (例: LIBMO)

APN: APNアドレス (例: mymb.jp)

ユーザー名: アカウントのユーザー名 (例: user@mymb)

パスワード: アカウントのパスワード (例: mymb)

サインイン情報の種類: 認証方式 (例: CHAP, PAP)

IPの種類: IPアドレスの種類 (例: IPv4, IPv4v6)

保存と適用:

[保存] または [OK] をクリックします。

設定したプロファイルが「適用済み」になっていることを確認します。

接続確認:

タスクバーのネットワークアイコンからモバイルデータ通信が「接続済み」になっているか確認し、ブラウザでインターネット接続を試します。 

ポイント:

APN設定は、契約した格安SIMやeSIMプロバイダーから提供される情報が必要です。

「サインイン情報の種類」で「自動設定」を選ぶとつながらない場合があるため、手動で指定します。

設定後、機内モードのオン/オフを切り替えることで接続が促されることがあります。 

2026年1月11日日曜日

ISE on Linux



https://qiita.com/BonyChops/items/bd6532ed39e9d790dc29   参照 



Xilinx ISEをUbuntu(Linux)で使う

日本語で解説されている記事がなかったのと,既存の記事を鵜呑みするだけではできなかったものがいくつかあったため,それの修正も兼ねて記事を書きます.以下の環境で動作確認済みです.

種別環境
OSUbuntu 21.04
CPU Archx86_64(64bit)
shellzsh(記事はbash向け)

本記事は,Xilinx ISE 14.7 WebPACKをUbuntuにインストールするまでの流れを解説しています.

ダウンロード

まずはXilinxのサイトよりLinux版のXilinxをダウンロードしましょう.この時,アーカイブだけで6.09GBもあります.必ずchecksumしましょう.
image.png

$ md5sum Xilinx_ISE_DS_Lin_14.7_1015_1.tar
e8065b2ffb411bb74ae32efa475f9817  Xilinx_ISE_DS_Lin_14.7_1015_1.ta

このときに出てくる値の正誤により,ダウンロードが正常にできているかが確認できます.インストール中に気づくのは悲惨であるため,必ず確認しましょう(USBメモリ等で誰かに共有したときも同様ですよ!).

ISEのインストール

インストーラを実行する前に,実行するための依存関係を入れます.以下はUbuntu(Debian系)でのインストールコマンドです.

sh
sudo apt install libncurses5

Xilinx_ISE_DS_Lin_14.7_1015_1.tarを展開しましょう.ファイルマネージャ等でダブルクリックしても良いし,コマンドラインで実行しても良いです

sh
tar -xvf Xilinx_ISE_DS_Lin_14.7_1015_1.tar
cd Xilinx_ISE_DS_Lin_14.7_1015_1

次に,インストーラに実行権限を与え,実行します

sh
sudo chmod +x xsetup
sudo ./xsetup

するとGUIのウィザードが出てきます.(この先選択が必要な箇所だけ説明します)
今回はISE WebPACKを選択します.
image.png

一応Install Cable Driversにチェックを入れます...がここでは100%失敗しますので安心して下さい(対策は後述).
image.png

インストール先のパスはどこでも大丈夫ですが,変える場合は変えたことを自分で把握しておいて下さい.今後は/opt/Xilinxにインストールした前提で説明していきます.
image.png

インストールして待ちます.この時ありがちなエラーを示しておきます.

  • Drive Install Failedみたいなやつ
    ここでは必ず失敗するものなのでOKです
  • ... not found みたいなやつ
    .tarを展開したときに失敗しているか,そもそもの.tarの中身が正しくないことが多いです.「ダウンロード」からやり直して下さい...

起動ショートカットの追加

ショートカットを作成します.ここではgeditを使いますが,vimでもemacsでもnanoでもOKです.

sh
sudo gedit /opt/Xilinx/14.7/ISE_DS/ise

以下を貼り付けて下さい.(引用元)

/opt/Xilinx/14.7/ISE_DS/ise
#!/bin/bash
export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.so
ISE_DS_DIR=/opt/Xilinx/14.7/ISE_DS
export gmake=/usr/bin/make
cd "$ISE_DS_DIR"
source "$ISE_DS_DIR"/settings64.sh
export LANG=''  # reset locale to English to fix decimal/comma seperation
"$ISE_DS_DIR"/ISE/bin/lin64/ise

上記のスクリプトに実行権限を与えます.

sh
sudo chmod a+x /opt/Xilinx/14.7/ISE_DS/ise

デスクトップファイルの作成(Ubuntu向け)

次にデスクトップファイルを作成します.

sh
sudo gedit /usr/share/applications/ISE.desktop
/usr/share/applications/ISE.desktop
[Desktop Entry]
Version=1.0
Name=ISE
Exec=/opt/Xilinx/14.7/ISE_DS/ise
Terminal=false
Icon=/opt/Xilinx/14.7/ISE_DS/ISE/data/images/pn-ise.png
Type=Application
Categories=Development

これで,アプリケーション一覧にISEが追加されます.

image.png

パスを通す

zshなどを使っている場合は~/.bashrc~/.zshrcに置き換えてくださいね.

sh
echo PATH=\$PATH:/opt/Xilinx/14.7/ISE_DS/ISE/bin/lin64/ >> ~/.bashrc
source ~/.bashrc

試しに,iseと入力して起動したら,正しくパスが通っています.

sh
ise

無事ウィンドウが出てきたら,閉じてください.

間違ったパス

こちらの記事を参考にセットアップされた方は,おそらく間違ったパスを設定されています(/opt/Xilinx/13.2/ISE_DS/ISE/bin/lin64/になってる).残しておいてもよいですが,気になるようでしたら.bashrcから該当の行を削除してください.

Cable Driver のインストール

先程失敗したCable Driverのインストールを行います.まず,必要なパッケージのインストール.

sh
sudo apt install libusb-dev libftdi-dev build-essential libc6-dev fxload git

次に,Cable Driverをダウンロードします.

sh
cd /opt/Xilinx
sudo git clone https://git.zerfleddert.de/git/usb-driver

このとき,git cloneが失敗するときは,https://git.zerfleddert.de/git/usb-driverのリンクが変わっている可能性があります.ここを確認し,自分で直してください...

完了したら,早速makeしましょう(make -j $(nproc)でも良いですが,そこまで量は多くないです)

sh
cd /opt/Xilinx/usb-driver
sudo make

最後に,セットアップを実行して完了です!

sudo ./setup_pcusb /opt/Xilinx/14.7/ISE_DS/ISE/

より快適に使うために(VSCodeなど)

LinuxにインストールしたISE Webpackは,なんと日本語入力ができないどころか,日本語が表示できません.より快適に使うために,他のエディタを開く設定をすることをおすすめします.

こちらではVSCodeでの設定方法を紹介していますのでぜひ.

環境変数について(おまけ)

usb-driverのREADMEには

export LD_PRELOAD=/opt/Xilinx/usb-driver/libusb-driver.soしてからimpact起動してね!

とありますが,楽だからといって~/.bashrcなどに置くことは推奨しません.
.bashrcにおいた結果,なぜかターミナルからVSCodeが起動しなくなりました.
ここにもあるように,起動用のスクリプトに含ませ,ISE起動時のみに適用するほうが良いです.

参考文献