#! / bin / bash .. # version 3.1 of March 6, 2016 #http: //help.ubuntu.ru/wiki/canon_capt #http: //forum.ubuntu.ru/index.php? topic = 189049.0 .. # check for superuser [$ USER! = 'Root'] && exec sudo "$ 0" # the user under which we entered the system LOGIN_USER = $ (logname) [-z "$ LOGIN_USER"] && LOGIN_USER = $ (who | head -1 | awk '{print $ 1}') # load the file containing the path to the desktop if [-f ~ / .config / user-dirs.dirs]; then source ~ / .config / user-dirs.dirs else XDG_DESKTOP_DIR = "$ HOME / Desktop" fi # driver version DRIVER_VERSION = '2.70-1' DRIVER_VERSION_COMMON = '3.20-1' # links to driver packages declare -A URL_DRIVER = ([amd64_common] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjamV2YW12MnF6THc' \ [amd64_capt] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjZlYwazNwdlNBY1U' \ [i386_common] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjQy0yeGtMQWRUeEE' \ [i386_capt] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjSDA3elJnRXJXZk0') # links to the autoshutdowntool utility declare -A URL_ASDT = ([amd64] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjc0s2YlJVZ0xBckk' \ [i386] = 'https: //drive.google.com/uc? export = download & confirm = no_antivirus & id = 0Byemcyi98JRjdzFlWjVnbGpBMFU') #correspondence of ppd files and printer models declare -A LASERSHOT = ([LBP-810] = 1120 [LBP-1120] = 1120 [LBP-1210] = 1210 \ [LBP2900] = 2900 [LBP3000] = 3000 [LBP3010] = 3050 [LBP3018] = 3050 [LBP3050] = 3050 \ [LBP3100] = 3150 [LBP3108] = 3150 [LBP3150] = 3150 [LBP3200] = 3200 [LBP3210] = 3210 \ [LBP3250] = 3250 [LBP3300] = 3300 [LBP3310] = 3310 [LBP3500] = 3500 [LBP5000] = 5000 \ [LBP5050] = 5050 [LBP5100] = 5100 [LBP5300] = 5300 [LBP6000] = 6018 [LBP6018] = 6018 \ [LBP6020] = 6020 [LBP6020B] = 6020 [LBP6200] = 6200 [LBP6300n] = 6300n [LBP6300] = 6300 \ [LBP6310] = 6310 [LBP7010C] = 7018C [LBP7018C] = 7018C [LBP7200C] = 7200C [LBP7210C] = 7210C \ [LBP9100C] = 9100C [LBP9200C] = 9200C) # sorted printer names NAMESPRINTERS = $ (echo "$ {! LASERSHOT [@]}" | tr '"' \ n '| sort -n -k1.4) # list of models that are supported by the auto-shutdown utility declare -A ASDT_SUPPORTED_MODELS = ([LBP6020] = 'MTNA002001 MTNA999999' \ [LBP6020B] = 'MTMA002001 MTMA999999' [LBP6200] = 'MTPA00001 MTPA99999' \ [LBP6310] = 'MTLA002001 MTLA999999' [LBP7010C] = 'MTQA00001 MTQA99999' \ [LBP7018C] = 'MTRA00001 MTRA99999' [LBP7210C] = 'MTKA002001 MTKA999999') # operating system architecture if ["$ (uname -m)" == 'x86_64']; then ARCH = 'amd64' else ARCH = 'i386' fi # define the initialization system if [[$ (ps -p1 | grep systemd)]]; then INIT_SYSTEM = 'systemd' else INIT_SYSTEM = 'upstart' fi # make the working directory where this script is located cd "$ (dirname" $ 0 ")" function valid_ip () { local ip = $ 1 local stat = 1 if [[$ ip = ~ ^ [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] { 1,3} $]]; then ip = ($ (echo "$ ip" | tr '.' '')) [[$ {ip [0]} -le 255 && $ {ip [1]} -le 255 && $ {ip [2]} -le 255 && $ {ip [3]} -le 255]] stat = $? fi return $ stat } function check_error () { if [$ 2 -ne 0]; then case $ 1 in 'WGET') echo "Error while downloading file $ 3" [-n "$ 3"] && [-f "$ 3"] && rm "$ 3" ;; 'PACKAGE') echo "Error installing package $ 3" ;; *) echo 'Error' ;; esac echo 'Press any key to exit' read -s -n1 exit 1 fi } function canon_unistall () { if [-f / usr / sbin / ccpdadmin]; then installed_model = $ (ccpdadmin | grep LBP | awk '{print $ 3}') if [-n "$ installed_model"]; then echo "Found $ installed_model" echo "Completion of captstatusui" killall captstatusui 2> / dev / null echo 'Stop the ccpd daemon' service ccpd stop echo 'Removing the printer from the ccpd configuration file of the daemon' ccpdadmin -x $ installed_model echo 'Removing a printer from CUPS' lpadmin -x $ installed_model fi fi echo 'Removing driver packages' dpkg --purge cndrvcups-capt dpkg --purge cndrvcups-common echo 'Removing Unused Libraries and Packages' apt-get-y autoremove echo 'Deleting settings' [-f /etc/init/ccpd-start.conf] && rm /etc/init/ccpd-start.conf [-f /etc/udev/rules.d/85-canon-capt.rules] && rm /etc/udev/rules.d/85-canon-capt.rules [-f "$ {XDG_DESKTOP_DIR} /captstatusui.desktop"] && rm "$ {XDG_DESKTOP_DIR} /captstatusui.desktop" [-f / usr / bin / autoshutdowntool] && rm / usr / bin / autoshutdowntool [$ INIT_SYSTEM == 'systemd'] && update-rc.d -f ccpd remove echo 'Uninstall completed' echo 'Press any key to exit' read -s -n1 return 0 } function canon_install () { echo PS3 = 'Select the printer. Enter the desired number and press Enter: ' select NAMEPRINTER in $ NAMESPRINTERS do [-n "$ NAMEPRINTER"] && break done echo "Printer selected: $ NAMEPRINTER" echo PS3 = 'How is the printer connected to the computer? Enter the desired number and press Enter: ' select CONECTION in 'Via the USB port connector' 'Via the LAN connector (LAN, NET)' do if ["$ REPLY" == "1"]; then CONECTION = "usb" while true do # Looking for a device connected to the USB port NODE_DEVICE = $ (ls -1t / dev / usb / lp * 2> / dev / null | head -1) if [-n "$ NODE_DEVICE"]; then # define the serial number of the printer PRINTER_SERIAL = $ (udevadm info --attribute-walk --name = $ NODE_DEVICE | sed '/./{H;$!d;};x;/ATTRS{product}=="Canon CAPT USB \ (Device \ | Printer \) "/! D; '| awk -F' == '' / ATTRS {serial} / {print $ 2} ') # if the serial number is found, then the device found printer Canon [-n "$ PRINTER_SERIAL"] && break fi echo -ne "Turn on the printer \ r" sleep 2 done PATH_DEVICE = "/ dev / canon $ NAMEPRINTER" break elif ["$ REPLY" == "2"]; then CONECTION = "lan" read -p 'Enter the IP address of the printer:' IP_ADDRES until valid_ip "$ IP_ADDRES" do echo 'Invalid IP address format, enter four decimal numbers with' echo -n 'from 0 to 255, separated by periods:' read IP_ADDRES done PATH_DEVICE = "net: $ IP_ADDRES" echo 'Turn on the printer and press any key' read -s -n1 sleep 5 break fi done echo 'Driver Installation' COMMON_FILE = cndrvcups-common _ $ {DRIVER_VERSION_COMMON} _ $ {ARCH} .deb CAPT_FILE = cndrvcups-capt _ $ {DRIVER_VERSION} _ $ {ARCH} .deb if [! -f $ COMMON_FILE]; then sudo -u $ LOGIN_USER wget -O $ COMMON_FILE $ {URL_DRIVER [$ {ARCH} _common]} check_error WGET $? $ COMMON_FILE fi if [! -f $ CAPT_FILE]; then sudo -u $ LOGIN_USER wget -O $ CAPT_FILE $ {URL_DRIVER [$ {ARCH} _capt]} check_error WGET $? $ CAPT_FILE fi apt-get -y update apt-get-y install libglade2-0 check_error PACKAGE $? libglade2-0 echo 'Installing the common module for the CUPS driver' dpkg -i $ COMMON_FILE check_error PACKAGE $? $ COMMON_FILE echo 'Installing the printer driver module CAPT' dpkg -i $ CAPT_FILE check_error PACKAGE $? $ CAPT_FILE # replacement of the contents of the file /etc/init.d/ccpd echo '#! / bin / bash # startup script for Canon Printer Daemon for CUPS (ccpd) ### BEGIN INIT INFO # Provides: ccpd # Required-Start: $ local_fs $ remote_fs $ syslog $ network $ named # Should-Start: $ ALL # Required-Stop: $ syslog $ remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: Start Canon Printer Daemon for CUPS ### END INIT INFO DAEMON = / usr / sbin / ccpd case $ 1 in start) start-stop-daemon -start -quiet -oknodo -exec $ {DAEMON} ;;; stop) start-stop-daemon -stop -quiet -oknodo -retry TERM / 30 / KILL / 5 --exec $ {DAEMON} ;;; status) echo "$ {DAEMON}:" $ (pidof $ {DAEMON}) ;;; restart) while true do start-stop-daemon -stop -quiet -oknodo -retry TERM / 30 / KILL / 5 --exec $ {DAEMON} start-stop-daemon -start -quiet -oknodo -exec $ {DAEMON} for ((i = 1; i <= 5; i ++)) do sleep 1 set - $ (pidof $ {DAEMON}) [-n "$ 1" -a -n "$ 2"] && exit 0 done done ;;; *) echo "Usage: ccpd {start | stop | status | restart}" exit 1 ;;; esac exit 0 '> /etc/init.d/ccpd # Installing utilities for managing AppArmor apt-get-y install apparmor-utils # Set in AppArmor profile in sparing mode for cupsd aa-complain / usr / sbin / cupsd echo 'Restart CUPS' service cups restart echo 'Installing 32-bit libraries required for' echo '64-bit version of the printer driver ' if [$ ARCH == 'amd64']; then apt-get -y install libatk1.0-0: i386 libcairo2: i386 libgtk2.0-0: i386 libpango1.0-0: i386 libstdc ++ 6: i386 libpopt0: i386 libxml2: i386 libc6: i386 check_error PACKAGE $? fi echo 'Installing the printer in CUPS' / usr / sbin / lpadmin -p $ NAMEPRINTER -P /usr/share/cups/model/CNCUPSLBP${LASERSHOT[$NAMEPRINTER]}CAPTK.ppd -v ccp: // localhost: 59687 -E echo "Setting the printer to $ NAMEPRINTER, the default printer" / usr / sbin / lpadmin -d $ NAMEPRINTER echo 'Registering the printer in the ccpd configuration file of the daemon' / usr / sbin / ccpdadmin -p $ NAMEPRINTER -o $ PATH_DEVICE # Verifying the printer installation installed_printer = $ (ccpdadmin | grep $ NAMEPRINTER | awk '{print $ 3}') if [-n "$ installed_printer"]; then if ["$ CONECTION" == "usb"]; then echo 'Creating a rule for the printer' # is a rule that provides an alternative name (a symbolic link) to our printer, so as not to depend on the changing values of lp0, lp1, ... echo 'KERNEL == "lp [0-9] *", SUBSYSTEMS == "usb", ATTRS {serial} ==' $ PRINTER_SERIAL ', SYMLINK + = "canon' $ NAMEPRINTER '"'> / etc / udev / rules .d / 85-canon-capt.rules # update the rules udevadm control --reload-rules # checking the created rule until [-e $ PATH_DEVICE] do echo -ne "Turn off the printer, wait 2 seconds, then turn on the printer \ r" sleep 2 done fi echo -e "\ e [2Kccpd start" service ccpd restart # autoload ccpd if [$ INIT_SYSTEM == 'systemd']; then update-rc.d ccpd defaults else echo 'description "Canon Printer Daemon for CUPS (ccpd)" author "LinuxMania <customer@linuxmania.jp>" start on (started cups and runlevel [2345]) stop on runlevel [016] expect fork respawn exec / usr / sbin / ccpd start '> /etc/init/ccpd-start.conf fi # create the start button captstatusui on the desktop echo '#! / usr / bin / env xdg-open [Desktop Entry] Version = 1.0 Name = captstatusui GenericName = Status monitor for Canon CAPT Printer Exec = captstatusui -P '$ NAMEPRINTER' Terminal = false Type = Application Icon = / usr / share / icons / Humanity / devices / 48 / printer.svg '> "$ {XDG_DESKTOP_DIR} /captstatusui.desktop" chmod 775 "$ {XDG_DESKTOP_DIR} /captstatusui.desktop" chown $ LOGIN_USER: $ LOGIN_USER "$ {XDG_DESKTOP_DIR} /captstatusui.desktop" # install the auto-shutdown utility for supported printer models if [["$ {! ASDT_SUPPORTED_MODELS [@]}" = ~ "$ NAMEPRINTER"]]; then SERIALRANGE = ($ {ASDT_SUPPORTED_MODELS [$ NAMEPRINTER]}) SERIALMIN = $ {SERIALRANGE [0]} SERIALMAX = $ {SERIALRANGE [1]} if [[$ {# PRINTER_SERIAL} -eq $ {# SERIALMIN} && $ PRINTER_SERIAL> $ SERIALMIN && $ PRINTER_SERIAL <$ SERIALMAX || $ PRINTER_SERIAL == $ SERIALMIN || $ PRINTER_SERIAL == $ SERIALMAX]]; then echo "Installing the autoshutdowntool utility" ASDT_FILE = autoshutdowntool_1.00-1 _ $ {ARCH} _deb.tar.gz if [! -f $ ASDT_FILE]; then wget -O $ ASDT_FILE $ {URL_ASDT [$ ARCH]} check_error WGET $? $ ASDT_FILE fi tar --gzip --extract --file = $ ASDT_FILE --totals --directory = / usr / bin fi fi # start captstatusui if [[-n "$ DISPLAY"]]; then sudo -u $ LOGIN_USER nohup captstatusui -P $ NAMEPRINTER> / dev / null 2> & 1 & sleep 5 fi echo 'The installation is complete. Press any key to exit ' read -s -n1 exit 0 else echo "The $ NAMEPRINTER printer is not installed" echo 'Press any key to exit' read -s -n1 exit 1 fi } function canon_update () { if [-f / usr / sbin / ccpdadmin]; then NAMEPRINTER = $ (ccpdadmin | grep LBP | awk '{print $ 3}') if [-n "$ NAMEPRINTER"]; then echo "$ NAMEPRINTER printer found" SETUP_DRIVER_VERSION = $ (dpkg -l | grep cndrvcups-capt | awk '{print $ 3}') echo "Installed driver version: $ SETUP_DRIVER_VERSION" echo "The driver version to be installed: $ DRIVER_VERSION" dpkg --compare-versions $ DRIVER_VERSION lt $ SETUP_DRIVER_VERSION if [$? -eq 0]; then echo 'The version of the driver that is installed is less than the version of the driver that is already installed. The update will not continue. Press any key to exit ' read -s -n1 exit 1 fi echo "Completion of captstatusui" killall captstatusui 2> / dev / null echo 'Stop the ccpd daemon' service ccpd stop echo 'Removing a printer from CUPS' lpadmin -x $ NAMEPRINTER # driver update ... ' COMMON_FILE = cndrvcups-common _ $ {DRIVER_VERSION_COMMON} _ $ {ARCH} .deb CAPT_FILE = cndrvcups-capt _ $ {DRIVER_VERSION} _ $ {ARCH} .deb if [! -f $ COMMON_FILE]; then sudo -u $ LOGIN_USER wget -O $ COMMON_FILE $ {URL_DRIVER [$ {ARCH} _common]} check_error WGET $? $ COMMON_FILE fi if [! -f $ CAPT_FILE]; then sudo -u $ LOGIN_USER wget -O $ CAPT_FILE $ {URL_DRIVER [$ {ARCH} _capt]} check_error WGET $? $ CAPT_FILE fi echo 'Updating the Common Module for the CUPS Driver' dpkg -i $ COMMON_FILE check_error PACKAGE $? $ COMMON_FILE echo 'Updating the printer driver module CAPT' dpkg -i $ CAPT_FILE check_error PACKAGE $? $ CAPT_FILE echo 'Restart CUPS' service cups restart echo 'Installing the printer in CUPS' / usr / sbin / lpadmin -p $ NAMEPRINTER -P /usr/share/cups/model/CNCUPSLBP${LASERSHOT[$NAMEPRINTER]}CAPTK.ppd -v ccp: // localhost: 59687 -E echo "Setting the printer to $ NAMEPRINTER, the default printer" / usr / sbin / lpadmin -d $ NAMEPRINTER if [[-n "$ DISPLAY"]]; then echo 'Running captstatusui' while true do sleep 1 set - $ (pidof / usr / sbin / ccpd) if [-n "$ 1" -a -n "$ 2"]; then sudo -u $ LOGIN_USER nohup captstatusui -P $ NAMEPRINTER> / dev / null 2> & 1 & sleep 5 break fi done fi echo "The driver has been updated, press any key to exit" read -s -n1 exit 0 fi fi echo "Canon LBP series printers are not installed" echo 'Press any key to exit' read -s -n1 exit 1 } function canon_help { clear echo 'Installation notes If you have already done anything to install the printer in this series, in the current system, then before starting the installation, you should cancel these actions. If there are no driver packages, they are automatically downloaded from the Internet in the script folder. Printers LBP-810, LBP-1210 connect through the USB port connector To update the driver, first uninstall the old version via the script, then install a new one also through the script. Notes on printing problems If the printer stops printing, run captstatusui via the start button on the desktop or in the terminal with the command: captstatusui -P <printer_name> The captstatusui window displays a message about the current status of the printer, if an error occurs, its description is displayed. Here you can try pressing the button "Resume Job" to continue printing or "Cancel Job" button to cancel the job. If this does not help, then run the script canon_restart.sh printer configuration command: cngplp additional settings, command: captstatusui -P <printer_name> Auto-off setting (not for all models): autoshutdowntool Comments and errors write to the mail coden@mail.ru or on the forum http://forum.ubuntu.ru/index.php?topic=189049.0 To log the installation process, run the script like this: logsave log.txt ./canon_lbp_setup.sh ' } clear echo 'Installing the Linux CAPT Printer Driver v' $ {DRIVER_VERSION} 'driver for Canon LBP printers on Ubuntu 12.04, 12.10, 13.04, 13.10, 14.04, 14.10, 15.04, 15.10 of the 32-bit and 64-bit architecture Supported printers: ' echo "$ NAMESPRINTERS" | sed ': a; / $ / N; s / \ n /, /; ta '| fold -s PS3 = 'Select action. Enter the desired number and press Enter: ' select opt in 'Install' 'Uninstall' 'Help' 'Exit' do if ["$ opt" == 'Installation']; then canon_install break elif ["$ opt" == 'Deleting']; then canon_unistall break # elif ["$ opt" == 'Update']; then # canon_update # break elif ["$ opt" == 'Help']; then canon_help elif ["$ opt" == 'Quit']; then break fi done
mohdisham
Tuesday, February 13, 2018
Linuxmint 64bit vs cannon lbp2900b
Sunday, January 01, 2017
error at repair filesystem of /data and mount /data
problem 1: error while wiping /data due to mount error
issue: due corrupt of /data partition
fix1: fastboot erase userdata
fix2: change file system to extfs1 or extfs2 or extfs3 or exts4 or FAT
whichever works for data wipe
fix3 : Boot into TWRP or any other similar recovery.
Enter adb shell in a terminal on your PC while running recovery on the phone.
Enter e2fsck /dev/block/platform/msm_sdcc.1/by-name/persist
Error executing updater binary in zip
problem : Error executing updater binary in zip
fix: update/change recovery
I fixed it by updating recovery from
twrp-2.8.7.0-ghost.img to twrp-2.8.7.2-ghost.img
on bootloader screen type
fastboot flash recovery twrp-2.8.7.2-ghost.img on terminal
Sunday, December 04, 2016
Ubuntu Touch as a daily phone
I have been using Ubuntu Touch on my Nexus 4 for a year now, For an Android alternative OS for smartphones it has come a long way compared to other options like Firefox, Sailfish, Tizen, Bada, Meego etc...
Now that I have used for about a year I could vouch that it can be used as a daily driver if all you do is Call, Msg, Listen to music and watch videos... But that's not all we do is it.... Ubuntu touch even though has been successful compared to others it's still has a lot to catch up to Android to satisfy, and hook general public rather than just enthusiast like me....
Ubuntu touch is lacking in apps availability, operation speed. We know what our smartphones are capable of... But don't find Ubuntu touch delivering it....
Saturday, December 03, 2016
Install ScreenFetch on Linuxmint
sudo apt-get install lsb-release scrot
2. Install screenfetch in Linux
mkdir ~/screenfetch
cd ~/screenftetcht
wget -O screenfetch 'https://raw.github.com/KittyKatt/screenFetch/master/screenfetch-dev'
chmod +x screenfetch
sudo cp screenfetch /usr/local/bin
Thursday, March 10, 2016
How to get a list of all valid ip address in a local network?
sudo apt-get install nmap
then
nmap -sP 192.168.1.*
This does a simple ping scan in the entire subnet to see which all host's are online.
Wednesday, March 09, 2016
Wifi File transfer from ubuntu touch to android/pc
Requirements
Ubuntu touch - needs the wifitransfer app by Stuart langgridge
Android - needs any file managers with FTP support
Connect both phones via wifi tethering
On Ubuntu touch
Turn on wifitransfer
Which will provide
IP address
Port
Username
Password
On Android create FTP server
Provide details given on Ubuntu touch and connect
Copy files to the FTP folder
All files transferred to Ubuntu touch will be stored in .local/share/wifitransfer file
Similar all files copied to .local/share/wifitransfer will be available on Android FTP server
Linuxmint 64bit vs cannon lbp2900b
i have no idea about other printers but cannon lbp2900b and my linuxmint 64 bit never jelled together after trying out most of the solutions...
-
TRUNCATE ip_invoices; TRUNCATE ip_invoice_amounts; TRUNCATE ip_invoice_custom; TRUNCATE ip_invoice_items; TRUNCATE ip_invoice_item_amounts; ...
-
i have no idea about other printers but cannon lbp2900b and my linuxmint 64 bit never jelled together after trying out most of the solutions...
-
device : ghost problem 1: error while wiping /data due to mount error issue: due corrupt of /data partition fix1: fastboot erase userdat...