發表文章

[ECOS] Set up Env in Ubuntu 16

很久沒重做過ecos的環境,這次在WSL中做一個可以跑的環境 1. 先在win11中開啟WSL,選定安裝Ubuntu 16.04LTS 2.  從SVN中抓出以下檔案:      uclibc-crosstools-gcc-4.2.3-4_lvg.tgz      uclibc-crosstools-gcc-4.2.3-4.tgz      zxf uclibc-crosstools-gcc-4.3.3.tgz      ecos_tools_usr_local.tgz 3. 解壓,把解開的東西放到特定的地方      sudo tar zxvf uclibc-crosstools-gcc-4.2.3-4_lvg.tgz      sudo tar zxf uclibc-crosstools-gcc-4.2.3-4.tgz      sudo tar zxf uclibc-crosstools-gcc-4.3.3.tgz      sudo mkdir toolchains      sudo mv uclibc-crosstools-gcc-4.2.3-4_lvg/ toolchains/      sudo mv uclibc-crosstools-gcc-4.2.3-4/ toolchains/      sudo mv uclibc-crosstools-gcc-4.3.3/ toolchains/      sudo mv toolchains/ /opt/      sudo chmod -R 755 /opt/toolchains/      sudo tar zxf ecos_tools_usr_local.tgz      sudo mv BrcmUtils/ /usr/local/  ...

[RDKM] Enable telnet & SSH on Lan

1. 先找到這個檔 /etc/utopia/utopia_init.sh     vi /etc/utopia/utopia_init.sh 2. Find #disable telnet / ssh ports     把Lan端過濾掉port 22&23的部份註解起來 3. Find #echo "[utopia][init] Starting telnetd"     把以下整段的註解打開,這樣應該就會有telnetd 4. 加入以下 開啟SSH      if [ -f "/usr/sbin/dropbear" ]; then           /usr/bin/killall dropbear           /usr/sbin/dropbear -R;/usr/sbin/dropbear -r /etc/dropbear/dropbear_dss_host_key -r /etc/dropbear/dropbear_rsa_host_key -b /etc/sshbanner.txt -E -P /var/run/dropbear.pid &      fi 5. syscfg 中是沒有 mgmt_lan_telnetaccess 的     所以  syscfg set mgmt_lan_telnetaccess 1     syscfg commit 6. sync; sync; reboot

[BRCM WIFI project] Set up Env & build code

[Make BCM 6755 compile ENV] 1. set shell to BASH   sudo dpkg-reconfigure dash 2. 32bit compatable   sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 3. Install BRCM tool chain   cp -r "tool chain" /opt/toolchains/ 4. Update autoconf, realpath   [M17]sudo apt-get install gawk autoconf realpath automake libtool liblzo2-dev uuid-dev zlib1g-dev g++ libncurses5-dev   [U14]sudo apt-get install bison flex   [ToolChains] /projects/hnd/tools/linux/hndtools-armeabi-2013.11/bin   [Install BCM 6755 source code] mkdir bcm963xx_5.02L.07 tar -zxf bcm963xx_5.02L.07_data_src.tar.gz -C bcm963xx_5.02L.07/ cp JIRA36390-502L07.patch to bcm963xx_5.02L.07/ patch -p1 < JIRA36390-502L07.patch tar -zxf wlan-all-src-17.10.99.17.cpe5.02L.07.tgz   -C bcm963xx_5.02L.07/ patch -p1 < BSP-Patch-REL_502L07_CPEROUTER_P3   最後一部份可能已經改了 因為現在用的 SDK 版本比較新 所以不需要再 patch 一些 fix   make PROFILE=EBM...

[RDKM] Set up Env. in Windows10 WSL

有鑑於用VirtualBox跑OpenBfc-RDKM的make速度太慢 又不想重灌Linux的host..... 經過Tom的題點....開試用win10的WSL 建立的放法很簡單 Win10的版本請自己google 以下只寫我的做法: 1. 先開啟一個命令提示符號字元,請用管理者權限開啟。 2. 先看看要使用哪個版本的linux      wsl --list --online 3. 安裝要使用的版板,我是用Ubuntu 20.04 LTS      wsl --install --distribution Ubuntu-20.04     這時就會開始安裝,然後會重開機。 4. 重開機後,Ubuntu的終端機會自行打開,請設定帳號&密碼 5. 再來是如何開啟samba,請參考這邊:      https://www.twblogs.net/a/5c458f41bd9eee35b3a72258     做完後samba應該就可以從本機直接連上,把SDK丟進去。 5-1. 其實這邊可以根本不用samba來溝通檔案     因為 只要用//wsl$     就可以直接傳檔案 XD 6. 在Ubuntu中,請先sudo apt-get update & upgrade 7. 因為讓系統執行32bit的程式的lib名字不一樣了      原先的解法 sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 無法使用     所以要先  sudo dpkg --add-architecture i386 再 sudo apt-get update     上面那行就可以用了。 7a. i386的部份應該是不裝也可以 8. 這可以安裝所有需要的庫:      sudo apt-get install curl gawk socat bison unzip git chrpath diffstat...

[Swiftui] 觸發 Navigationlink by code

之前以為是沒辦法做到的 用button來觸發Navigation link 後來找到 Navigationlink 的進階用法 可以用flag的方式 來觸發Navigationlink的動作 引伸出來,可以用button 或是timer 來觸發,或是不只一個目標 的變化。 不囉唆,看code: ======================================================== struct main_page : View {      @ State private var selection : String ? = nil     var body : some View {         VStack {              NavigationLink (destination: page_1 (), tag: "page_1" , selection: $selection ) { EmptyView () }             NavigationLink (destination: page_2 (), tag: "page_2" , selection: $selection ) { EmptyView () }             Button (action: {                 self . selection = "page_1"             }) {                 Text ( "Goto Page 1" )             }     ...

[Swiftui] 兩個alert

有時會有一些情況,在判斷之後,需要顯示出不一樣的 alert 本來想說寫兩個 .Alert 就可以 不過最後會只有最後一個 Alert 發揮作用 所以要這樣改 enum ActiveAlert {     case IncorrectPWD , ChangePWD , None } struct Change_Password : View {     @ State private var showAlert = false     @ State private var activeAlert : ActiveAlert = . None 在需要的地方把設定值設定下去     self . activeAlert = . IncorrectPWD     self . showAlert = true 最後再要產生 alert 的地方這樣寫 . alert (isPresented: $showAlert ) {                         print ( "4 activeAlert = \( self . activeAlert ) " )                         switch activeAlert {                             case . IncorrectPWD :                                 return A...

[Swiftui] 透明的 List 底色

swiftui 的 List 功能強大 不過有用到 List 的地方,都是白色的, 為了 APP 整體配色的關係,找了一下如何設定底色的功能。 簡單的說,就是把 List 的底色設定成透明, 這樣就可以把本來放在 ZStack 的底色或底圖 顯示出來。 超簡單,只要在 init() 中放入幾行就好。 struct ContentView : View {     init () {         UITableView . appearance (). backgroundColor = . clear         UITableViewCell . appearance (). backgroundColor = . clear         UITableView . appearance (). tableFooterView = UIView ()     } 』